我们有SimplePager
但对于单元格小部件,我想知道是否有任何小部件可以帮助完成此操作:
如果我们有
totalRecords=100;
pageSize=3;
visiblePageLinks=5;
那么结果将是这样的
页码: [1] [2] [3] [4] [5] [下一页] 共 34 页(注:34=100/3 +1)当用户单击[下一步]时,它将自动转到页: [上一页] [6] [7] [8] [9] [10] [下一页]如果他们单击最后一个[下一步],它将变为:页: [上一页] [31] [34] [33] [34] (注:没有了 [下一页]如果用户单击[上一个],那么它将向后计算。
那么 Gwt 中是否有任何小部件可以帮助自动,例如:
PagingWidget pagingWidget =new PagingWidget();
pagingWidget.setTotalRecords(100);
pagingWidget.setPageSize(3);
pagingWidget.setVisiblePageLinks(5);
flowPanel.add(pagingWidget); will show the gui similar to the one mentioned above?
看看这个:
http://www.gwtproject.org/javadoc/latest/com/google/gwt/user/cellview/client/SimplePager.html
您可以扩展它以添加更多功能,也可以使用相同的想法编写自己的功能。
你需要扩展AbstractPager而不是SimplePager。
因为简单寻呼机只能显示文本。检查 createText() in SimplePager.java。
table.setVisibleRange(start, pagesize) 是本质,下面像下面一样扩展 AbstractPager
public void onModuleLoad() {
VerticalPanel root=new VerticalPanel();
RootPanel.get().add(root);
List<String> values=new ArrayList<String>();
for(int i=1;i<=10;i++){
values.add("value"+i);
}
final CellTable<String> table=new CellTable<String>();
table.addColumn(new TextColumn<String>() {
@Override
public String getValue(String object) {
return object;
}
});
ListDataProvider<String> dataProvider = new ListDataProvider<String>();
dataProvider.addDataDisplay(table);
table.setRowCount(values.size());
dataProvider.setList(values);
final int psize=2;
table.setPageSize(psize);
table.setRowData(values);
table.setVisibleRange(0, psize);
HorizontalPanel horizontalPanel=new HorizontalPanel();
int index=1;
for(int i=0;i<values.size();i+=2){
final int start=i;
Button bt=new Button("page"+index,new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
table.setVisibleRange(start, psize);
}
});
horizontalPanel.add(bt);
index++;
}
root.add(table);
root.add(horizontalPanel);
}