GWT,是否有任何 Gwt 小部件可以管理分页,如果提供了总记录、页面大小、可见页面链接



我们有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);
}

最新更新