我有一个显示员工详细信息的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);
现在,我的寻呼机&amp;表格显示前25行很好,但点击页面上的下一个表格正在消失,一些加载栏会永远显示在正文中。
我还在某处读过,如果不使用DataProviders就无法进行分页。是这样吗?
我在这里看过example of paging。它看起来很容易,但在我的情况下使用时我搞砸了。 任何帮助都非常感谢。另外,我希望你能提供基本代码让我去。
谢谢, 莫希特
答案 0 :(得分:2)
我认为你缺少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()
或类似内容添加数据。