2016-06-09 86 views
0

我想顯示批量數據,例如cell list,但我的問題是,我想顯示50條記錄(我將加載50個數據到單元格列表)加載25 more.On上面的例子中,我們必須加載所有的數據,但我不希望將整個數據加載到單元格列表,我希望加載更多時,用戶向下滾動。當用戶向下滾動RPC時,GWT加載批量數據

回答

0

,可以通過以下方法

1)捕捉小區列表中的顯示最後記錄的索引來完成。 該參數幫助我們查詢下一組記錄。

2)觸發事件,當用戶向下滾動到的位置,在那裏你要加載更多記錄

3)處理該事件,在與過去的表現記錄的指數打你的RPC服務。

4)更改您的RPC服務以處理索引(最後顯示的記錄索引)參數。

5)收到響應後,用新記錄更新小區列表, 在更新時應將新接收的數據附加到現有小區列表數據中。

+0

其實我想,我在上面提供的例子,並用AsynDataProvider,一切都很好在這裏。現在只缺少一件事,我可以使用onRangeChange方法加載更多數據,但不會通過向下滾動觸發,它只能通過按下單元格列表上的按鈕來觸發 – hkn

0

我做了它與例example,我只是把我自己的功能ShowMorePagerPanel自定義類。

public ShowMorePagerPanel() { 
initWidget(scrollable); 

// Do not let the scrollable take tab focus. 
scrollable.getElement().setTabIndex(-1); 

// Handle scroll events. 
scrollable.addScrollHandler(new ScrollHandler() { 
    public void onScroll(ScrollEvent event) { 
    // If scrolling up, ignore the event. 
    int oldScrollPos = lastScrollPos; 
    lastScrollPos = scrollable.getVerticalScrollPosition(); 
    if (oldScrollPos >= lastScrollPos) { 
     return; 
    } 

    HasRows display = getDisplay(); 
    if (display == null) { 
     return; 
    } 
    int maxScrollTop = scrollable.getWidget().getOffsetHeight() 
     - scrollable.getOffsetHeight(); 
    if (lastScrollPos >= maxScrollTop) { 
     // now we can add more data 
     **createData(); // creates 30 more data with RPC service** 
     int newPageSize = Math.min(
      display.getVisibleRange().getLength() + incrementSize, 
      display.getRowCount()); 
     display.setVisibleRange(0, newPageSize); 
    } 
    } 
}); 

}

相關問題