2012-04-13 8 views
3

Ich versuche, Paging in einem CellTable zu implementieren, aber es zeigt derzeit "1-10 von 10" Datensätze anstelle von "1-10 von 1000" Datensätze. Ich bin mir nicht sicher, wo ich die Gesamtzahl der Datensätze aktualisieren kann. Mein AsyncDataProvider sieht wie folgt aus:Wie bekomme ich die Gesamtzahl der Zeilen für GWT CellTable Paginierung in

AsyncDataProvider<OutletSearchVO> latestProvider = new AsyncDataProvider<OutletSearchVO>() { 

     @Override 
     protected void onRangeChanged(HasData<OutletSearchVO> display) { 
      final int start = display.getVisibleRange().getStart(); 
      int length = display.getVisibleRange().getLength(); 
      AsyncCallback<List<OutletSearchVO>> callback = new AsyncCallback<List<OutletSearchVO>>() { 
       @Override 
       public void onFailure(Throwable caught) { 
        Window.alert(caught.getMessage()); 
       } 

       @Override 
       public void onSuccess(List<OutletSearchVO> result) { 
        updateRowData(start, result); 
       } 
      }; 
      // The remote service that should be implemented 
      service.getOutletPage(start, length, callback); 

     } 
    }; 

Die SQL ich die Aufzeichnungen greifen bin mit ähnelt dies:

SELECT * 
    FROM (SELECT outlet_id, 
      outlet_name, 
      image, 
      ROWNUM rn 
     FROM ( SELECT outlet_id outlet_id, 
        account_name outlet_name, 
        image_score image, 
       FROM outlets) 
      ORDER BY OOI.created_on DESC, OOI.account_name)) 
WHERE rn > ? AND rn < ?  

die Fragezeichen durch den Start- und Zielbereich in einer vorbereiteten Erklärung ersetzt werden .

Antwort

4

Sie haben updateRowCount anrufen aus Ihrem AsyncDataProvider (ähnlich wie Sie updateRowData nennen), was bedeutet, dass Sie Ihren Server für die Zählung fragen (oder zumindest eine Annäherung, und dann entscheiden, ob Sie eine true oder false passieren als zweites Argument zu updateRowCount).

Natürlich können Sie auch updateRowCount rufen von außerhalb des onRangeChange, vor allem, wenn Sie im Voraus wissen können, wie viele Zeilen Sie haben, und diese Zahl wird sich nicht viel ändern.

Verwandte Themen