2011-08-14 8 views
1

나는 celltable과 simplepager를 가지고있다. 데이터를 목록으로 반환하기 위해 서버에 비동기 호출을 수행하고 있습니다. 서버 측에 gwt celltable paging

AsyncDataProvider<Entry> provider = new AsyncDataProvider<Entry>() { 
      @Override 
      protected void onRangeChanged(HasData<Entry> display) { 
       final int start = display.getVisibleRange().getStart(); 
       int length = display.getVisibleRange().getLength(); 

       AsyncCallback<List<Entry>> callback = new AsyncCallback<List<Entry>>() { 
        @Override 
        public void onFailure(Throwable caught) { 
         Window.alert(caught.getMessage()); 
        } 

        @Override 
        public void onSuccess(List<Entry> result) {       
         updateRowData(start, result); 
        } 
       }; 

       // The remote service that should be implemented 
       rpcService.fetchEntries(start, length, callback); 
      } 
     }; 

...

public List<Entry> fetchEntries(int start, int length) { 
     if (start > ENTRIES.size()) 
      return new ArrayList<Entry>(); 

     int end = start + length > ENTRIES.size() ? ENTRIES.size() : start 
       + length; 
     ArrayList<Entry> sublist = new ArrayList<Entry>(
       (List<Entry>) ENTRIES.subList(start, end)); 
     return sublist; 
    } 

문제는 내가 aync 호출에 의해 반환 된 데이터 세트의 크기를 알 수 없다는 것입니다. 그래서 나는 updateRowCount를 설정할 수 없다. 이제 데이터 세트에는 24 개의 필드 만 있어도 다음 버튼이 항상 활성화됩니다. 어떤 아이디어?

public FetchEntriesResult fetchEntries(int start, int length) { 

     if (start > ENTRIES.size()) 
      return new ArrayList<Entry>(); 

     int end = start + length > ENTRIES.size() ? ENTRIES.size() : start 
       + length; 
     ArrayList<Entry> sublist = new ArrayList<Entry>(
       (List<Entry>) ENTRIES.subList(start, end)); 
     return new FetchEntriesResult(sublist,ENTRIES.size()); 
} 

는 이제 클라이언트에서 FetchEntriesResult.getTotalNumberOfEntries()를 사용할 수 있습니다

class FetchEntriesResult{ 
    private int totalNumberOfEntries; 
    private List<Entry> entries; 
    //getters,setters, constructor etc... 
} 

및 서비스 방법과 같이된다 :뿐만 아니라 플래그를 반환하기 위해 RPC 서비스를 수정에 대해 어떻게

답변

1

.

관련 문제