【问题标题】:Pagination not working on GWT DataGrid分页不适用于 GWT DataGrid
【发布时间】:2013-01-15 06:44:00
【问题描述】:

我有一个显示员工详细信息的 DataGrid。例如,每一行对应一个员工(姓名、年龄、工资),姓名+年龄是锚点,工资是纯文本。

到目前为止一切正常,但由于行数非常高,我的浏览器开始挂起。所以我决定在我的 DataGrid 中使用分页。我做了类似的事情:

List<Employee> tableRowData = new ArrayList<Employee>();
DockPanel dock = new DockPanel();

empTable = new DataGrid<Employee>(tableRowData.size());
SimplePager pager = new SimplePager(TextLocation.CENTER);
pager.setDisplay(hotelsTable);
pager.setPageSize(25); 

dock.add(empTable, DockPanel.CENTER);
dock.add(pager, DockPanel.SOUTH);
dock.setWidth("100%");
dock.setCellWidth(empTable, "100%");
dock.setCellWidth(pager, "100%");

empTable.setRowCount(1, true);
empTable.setRowData(0, tableRowData);
empTable.setStyleName(style.hotelTable());
empTable.setWidget(dock);

现在,我的 pager& 表格在前 25 行中显示良好,但是在点击 pager 表格主体上的下一步时,表格主体会消失,并且一些加载栏会永远显示在主体中。

我还在某处读到,不使用 DataProviders 就无法进行分页。是这样吗?

我在这里看到了example of paging。它看起来很简单,但在我的情况下使用时我搞砸了。 非常感谢任何帮助。我也希望你能提供基本的代码来帮助我。

谢谢, 莫希特

【问题讨论】:

    标签: gwt gwt-celltable gwt-2.4 gwt-2.5


    【解决方案1】:

    我认为您缺少 ListProvider。 在你的情况下。你应该尝试:

    empTable = new DataGrid<Employee>(25);
    ListDataProvider<Employee> provider = new ListDataProvider<Employee>(tableRowData);
    provider.addDataDisplay(empTable);
    .
    .
    .
    //empTable.setRowCount(1, true);
    //empTable.setRowData(0, tableRowData);
    

    并使用provider.getList().add() 或类似的方式添加数据。

    【讨论】:

    • 我以前试过这个,也许我在 provider.getList().add() 中做错了,但这次我跳过了它,只使用了 ListDataProvider provider = new ListDataProvider(tableRowData); provider.addDataDisplay(empTable);它以某种方式工作正常。 :) 非常感谢您的帮助。
    猜你喜欢
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-12
    相关资源
    最近更新 更多