>

데이터 소스가 관계가 있고 다른 모델의 필드를 기준으로 정렬해야하는 테이블이있는 페이지가 있습니다 :

페이지
데이터 소스 =표시기

Datasource =표시기[one] :MetadataText[많은] (관계)

테이블MetadataField라는 다른모델의 필드를 기준으로 정렬해야합니다.MetadataText와 일대 다 관계입니다.

MetadataField의 데이터 소스가 정렬되어 있습니다. 그러나의 내용은 임의의 순서로 나타납니다. 처음 응용 프로그램에 액세스하면테이블이 레코드가로드 된 순서대로 정렬됩니다. 일부 레코드를 본 후 레코드 정렬이 변경되고 계속 변경됩니다.

Google 드라이브 테이블을 사용하고 있습니다.


  • 답변 # 1

    관련 레코드 자체에 속하는 필드 중 하나를 기준으로 관련 레코드를 쉽게 정렬 할 수 있지만한 번만(서버에서 정렬 된 레코드를 수신함)

    하지만 관련 레코드를 기준으로 관련 레코드를 정렬하려는 것 같습니다. 이 경우 App Maker가 친구가되지는 않지만 Javascript가됩니다! App Maker는전체관련 레코드를로드하므로 자바 스크립트를 사용하여 클라이언트에서 안전하게 정렬 할 수 있습니다.

    indicatorsDatasource.load(function() {
      indicatorsDatasource.items.forEach(function(indicator) {
        indicator.MetadataTexts.sort(function(a, b) {
           return /* here goes your sorting logic */;
        });
      });
    });
    
    

    페이지에 n 개의 지표가 있고 모든 지표에 m 개의 관련 MetadataText가있는 경우 O (n * m * log (m))에서 작동합니다. 사용자가 테이블 헤더를 클릭하여 관련 레코드를 정렬하도록하려면 해당 로직을 직접 구현해야합니다. 그래서 ...이 모든 번거 로움은 우리를 대체 솔루션으로 안내합니다! 관련 레코드를 분리하고 별도의 데이터 소스를 도입하면 어떻게됩니까? 이를 통해 거의 노력없이 App Maker의 테이블 (정렬/페이징)을 최대한 활용할 수 있습니다. 프로젝트 트래커 템플릿 ViewProject 페이지에서 구현 샘플을 살펴볼 수 있습니다.

관련 자료

  • 이전 java - 연결될 때까지 소켓을 통해 서버에 지속적으로 연결
  • 다음 javascript - JS/HTML을 사용하여 통화 흐름 메모/거품