1

我有一个显示员工详细信息的 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 就无法进行分页。是这样吗?

我在这里看到了分页的例子。它看起来很简单,但在我的情况下使用时我搞砸了。非常感谢任何帮助。我也希望你能提供基本的代码让我继续前进。

谢谢,莫希特

4

1 回答 1

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()或类似的方式添加数据。

于 2013-01-15T07:39:00.263 回答