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 서비스를 수정에 대해 어떻게