2010-12-11 11 views

回答

5

的建議是,使用

GWT-Ext的或SmartGWT的

提供各種組件,包括本地尋呼和遠程尋呼,這可以節省您的刻錄開夜車。

+2

我不知道GWT-Ext的,但是SmartGWT的是一個可怕的混亂。如果你想破壞你的網站性能,並有許多令人困惑的問題,那麼SmartGWT就是你的圖書館。 – ZalewaPL 2012-12-20 11:59:38

6

正如@ caarlos0提到,CellTable是一個良好的開端。你也可以看看GWT SimplePagerAsyncDataProvider。基本上SimplePager將綁定到CellTable(或任何Cell小部件)和AsyncDataProvider。如果發生頁面更改事件(如用戶單擊下一頁),onRangeChanged()將在AsyncDataProvider內部調用,並且您可以自定義該函數中的分頁行爲。

2

我會建議使用像EXT-GWT。它提供了內置的分頁處理機制。 你可以有一個支持本地分頁網格視圖(所有數據被收集在一個呼叫,但分裂成不同的網頁)或遠程分頁(數據調用時每一個新的頁面加載時間)

4

yes.CellTable真的是你習慣了it.u會發現它非常用戶friendly.use simplePager爲分頁的pagination.Once一個不錯的選擇。

5

,如果你想有超過比SimplePager界面更加控制您可以擴展AbstractPager。那麼你只需要重寫onRangeOrRowCountChanged()。你也可以實現漂亮的東西,比如延遲加載。然後,您可以分頁實現HasRows的任何窗口小部件。

6

我已經嘗試過使用Celltable分頁,它很好。

在你的活動,你應該做同樣的事情到這一點:

CellTable table; 

@Override 
public void start(AcceptsOneWidget panel, EventBus eventBus) { 
    // Get the table from the view 
    view.setPresenter(this); 
    panel.setWidget(view.asWidget()); 
    table=view.getCellTable(); 
    final SingleSelectionModel<Your_Class> selectionModel = new SingleSelectionModel<Your_Class>(); 
    table.setSelectionModel(selectionModel); 
    selectionModel.addSelectionChangeHandler(
     new SelectionChangeEvent.Handler() { 
      public void onSelectionChange(SelectionChangeEvent event) { 
       Your_Class selected = selectionModel.getSelectedObject(); 
       if (selected != null) { 
        // Go to edit screen with selected.getId(); 
       } 
      } 
     }); 
} 

然後在你實現視圖創建列:

table = new CellTable<Your_Class>(); 
table.setSelectionModel(new SingleSelectionModel<Your_Class>()); 

最後放分頁:

SimplePager pager; 
SimplePager.Resources pagerResources = GWT.create(SimplePager.Resources.class); 
pager = new SimplePager(TextLocation.CENTER, pagerResources, true, 0,true); 
pager.setDisplay(table); 

dataProvider.setList(list_of_data); 
pager.setPageSize(number_you_want); 
0

我知道這個問題很老了但這還沒有被提及。您可以使用ListDataProvider來處理客戶端分頁。這是非常容易使用,並會節省你很多時間。

0

經典的開始/長度分頁完全由GWT單元小部件支持。只需創建一個SimplePager並掛鉤RangeChangeEvent。您的麻煩將在服務器上,尤其是在現代NoSQL數據庫中。雖然大多數JPA/Hibernate都支持「start」和「limit」查詢修飾符,但「start」非常令人沮喪,因爲它只能遍歷不需要的數據。

只考慮連續性的blog-syle「滾動」分頁或「上一頁/下一頁」。然後,您可以通過對結果集進行排序並指定「lee than」或「更大」條件以及「limit」來實現它。

0
package com.ravi.gwt.client; 

import com.google.gwt.core.client.EntryPoint; 
import com.google.gwt.user.client.ui.RootPanel; 
import com.ravi.gwt.client.ContactDatabase.ContactInfo; 
import com.ravi.gwt.client.ui.MyPaginationDataGrid; 
public class GWT11 implements EntryPoint { 

    public void onModuleLoad() { 
     MyPaginationDataGrid<ContactInfo> grid = new MyPaginationDataGrid<ContactInfo>(); 
     grid.setHeight("500px");`enter code here` 
     grid.setDataList(ContactDatabase.get().generateContacts(100)); 
     RootPanel.get().add(grid); 
    } 
} 
+0

至少要說明你做了什麼。 – ketan 2016-05-05 10:53:44

1

Q1 GWT支持分頁嗎?

Q2是否GWT提供GWT GUI元素?

詳細 -

尋呼是裝載的操作,並且使進入視野當前未加載數據的範圍。 Q1 - 客戶端分頁由GWT完全支持,通過SimplePagerAbstractPager類。如果您正在尋找遠程分頁,那麼您必須根據您的要求創建您自己的自定義小部件和邏輯。

例子:

public class SimplePagerExample implements EntryPoint { 

    public void onModuleLoad() { 
// Create a CellList. 
CellList<String> cellList = new CellList<String>(new TextCell()); 

// Add a cellList to a data provider. 
ListDataProvider<String> dataProvider = new ListDataProvider<String>(); 
List<String> data = dataProvider.getList(); 
for (int i = 0; i < 200; i++) { 
    data.add("Item " + i); 
} 
dataProvider.addDataDisplay(cellList); 

// Create a SimplePager. 
SimplePager pager = new SimplePager(); 

// Set the cellList as the display. 
pager.setDisplay(cellList); 

// Add the pager and list to the page. 
VerticalPanel vPanel = new VerticalPanel(); 
vPanel.add(pager); 
vPanel.add(cellList); 
RootPanel.get().add(vPanel); 
     } 
    } 

` Q2SimplePager包含按鈕和文本標籤,您可以定製按您的要求。僅供參考檢查此鏈接 http://samples.gwtproject.org/samples/Showcase/Showcase.html#!CwCellTable

UI of simple pager