2017-12-29 23 views
0

점프. 데이터가 서버에서 올 때 :이 새로운 서버에서 데이터가 도착하면 테이블을 새로 고침, 잘 작동GWT 비동기 DataProvider에 항상 내가 간단한 celltable이 celtable '첫 페이지

protected void onRangeChanged(HasData<myObject> display) { 

      final Range range = display.getVisibleRange(); 
      int start = range.getStart(); 
      int end = start + range.getLength(); 

      List<myObject> dataInRange = myList.subList(start, end); 
      // Push the data back into the list.     
      setRowData(start, dataInRange); 

} 

:

public void onSuccess(final Object result) { 

      myList ((List<myObject>) result);        
      setRowData(myList); 
     } 

b)는 AsyncDataProvider는 현재 표시된 페이지를 새로 고칩니다. . 그러나 .... 현재 페이지 (페이지 크기 = 20)에 관계없이 표시된 테이블의 첫 페이지로 이동합니다. onRangeChanged 메서드의 start 및 dataInRange 값을 무시하는 것과 같습니다.

문장 : setRowData (myList);

제대로 DataProvider에의 onRangeChanged 이벤트를 트리거되어 있지만, 일부는 어떻게 값은 0

모든 팁을 얻을 '시작'? 많은 감사

답변

0

setRowData(myList);으로 전화를 걸면 행 범위가 변경되는 문제가 있습니다.

한 페이지에 표시 할 값의 전체 목록을 설정합니다

documentation 참조.

값 목록의 길이로 setRowCount (int)를 호출하고 setVisibleRange (Range)를 값 목록 크기로 호출하고 setRowData (int, List)를 0으로 시작하고 지정된 값으로 호출하는 것과 같습니다. 값 목록.

그대로

은, 아래의 구현 : 시끄 볼

public final void setRowData(List<? extends T> values) { 
    setRowCount(values.size()); 
    setVisibleRange(0, values.size()); 
    setRowData(0, values); 
} 
+0

감사합니다 ..... 정말 필요할 것 실제로 어떤없이 DataProvider에의 'onRangeChanged'트리거 '뭔가'입니다 현재 표시된 페이지를 변경하십시오. 그런 식으로 사용자 개입없이 데이터를 새로 고칩니다 ........ 그 일을 할 방법이 있습니까? – dummyhead

+0

[AsyncDataProvider] (http://www.gwtproject.org/javadoc/latest/com/google/gwt/view/client/AsyncDataProvider.html)의 예제 코드를 참조하십시오. 모든 것이 있습니다. – Adam