Ser*_*llo 12
如果你需要表格分页,你可以尝试名为"CellTable"的GWT Widget.它是一个可自定义的表格,可以轻松支持分页.
您可以在此处找到更多信息(javadoc页面):http://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/gwt/user/cellview/client/CellTable.html
这是一个如何使用它的示例:http: //gwt.google.com/samples/Showcase/Showcase.html#!CwCellTable
正如@ caarlos0所提到的,CellTable是一个好的开始.您还可以查看GWT SimplePager和AsyncDataProvider.基本上,SimplePager将绑定到CellTable(或任何Cell小部件)和AsyncDataProvider.如果触发了页面更改事件(如用户单击下一页),则将在AsyncDataProvider中调用onRangeChanged(),并且可以自定义该函数中的分页行为.
我尝试过与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();
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
然后在您的实现视图中创建列:
table = new CellTable<Your_Class>();
table.setSelectionModel( new SingleSelectionModel<Your_Class>());
Run Code Online (Sandbox Code Playgroud)
最后把分页:
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);
Run Code Online (Sandbox Code Playgroud)
建议是使用
Gwt-Ext或SmartGWT
它提供各种组件,包括本地分页和远程分页,可以节省你的燃烧午夜油.
如果您想要比SimplePager更多地控制接口,则可以扩展AbstractPager.然后你只需要覆盖onRangeOrRowCountChanged().你也可以实现延迟加载等好东西.然后,您可以对实现HasRows的任何窗口小部件进行分页.