GWT,如果提供totalRecords、pageSize和可见页面链接,是否有任何GWT小部件可以管理分页?
我们有GWT,如果提供totalRecords、pageSize和可见页面链接,是否有任何GWT小部件可以管理分页?,gwt,gwtp,Gwt,Gwtp,我们有SimplePager但是对于cell小部件,我想知道是否有任何小部件可以帮助完成这项工作: 如果我们有 totalRecords=100; pageSize=3; visiblePageLinks=5; 那么结果是这样的 Page: [1] [2] [3] [4] [5] [Next] out of 34 (note:34=100/3 +1) when user clicking [Next] it will automatically turn to Page: [previous
SimplePager
但是对于cell小部件,我想知道是否有任何小部件可以帮助完成这项工作:
如果我们有
totalRecords=100;
pageSize=3;
visiblePageLinks=5;
那么结果是这样的
Page: [1] [2] [3] [4] [5] [Next] out of 34 (note:34=100/3 +1)
when user clicking [Next] it will automatically turn to
Page: [previous] [6] [7] [8] [9] [10] [next]
if they click the last [Next], it will turn to:
Page: [previous] [31] [34] [33] [34] (note: no more [Next]
If user clicking [previous] then it will calculate backwards.
看看这个:
您可以扩展它以添加更多功能,也可以使用相同的想法编写自己的功能。您需要扩展AbstractPager而不是SimplePager 因为SimplePager只能在SimplePager.java中显示text.check createText() 表格。setVisibleRange(开始,页面大小)是基本要素。请按照下面的方法扩展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);
}
模块加载()上的公共void{
VerticalPanel根=新的VerticalPanel();
RootPanel.get().add(root);
列表值=新的ArrayList();
对于(int i=1;i),您可能会感兴趣,但我仍然建议使用CellTable。
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);
}