分页在GWT DataGrid上不起作用

分页在GWT DataGrid上不起作用,gwt,gwt-celltable,gwt-2.4,gwt-2.5,Gwt,Gwt Celltable,Gwt 2.4,Gwt 2.5,我有一个数据网格,显示员工的详细信息。例如,每一行对应一名员工(姓名、年龄、薪水),姓名+年龄为锚定,薪水为纯文本 到目前为止,一切正常,但由于行数非常高,我的浏览器开始挂起。所以我决定在我的数据网格中使用分页。我做了这样的事情: List<Employee> tableRowData = new ArrayList<Employee>(); DockPanel dock = new DockPanel(); empTable = new DataGrid<Emp

我有一个数据网格,显示员工的详细信息。例如,每一行对应一名员工(姓名、年龄、薪水),姓名+年龄为锚定,薪水为纯文本

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

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);
List tableRowData=new ArrayList();
DockPanel dock=新的DockPanel();
empTable=新数据网格(tableRowData.size());
SimplePager pager=新SimplePager(TextLocation.CENTER);
寻呼机设置显示(HotelTable);
pager.setPageSize(25);
dock.add(可清空,DockPanel.CENTER);
添加(寻呼机,DockPanel.SOUTH);
dock.setWidth(“100%”);
dock.setCellWidth(可清空,“100%”);
dock.setCellWidth(传呼机,“100%”);
可空。setRowCount(1,true);
可空。setRowData(0,tableRowData);
empTable.setStyleName(style.hotelTable());
可清空。setWidget(dock);
现在,我的寻呼机和表格在前25行显示良好,但单击“下一步”时,寻呼机表格主体将消失,一些加载条将永远显示在主体中

我还读到,如果不使用数据提供者,分页是无法完成的。是这样吗

我在这里看到了这些。它看起来很简单,但在我的箱子里使用时,我把它弄糟了。 非常感谢您的帮助。此外,我希望你能提供基本的代码,让我去

谢谢,
莫希特

我想你错过了ListProvider。 在您的情况下,您应该尝试:

empTable = new DataGrid<Employee>(25);
ListDataProvider<Employee> provider = new ListDataProvider<Employee>(tableRowData);
provider.addDataDisplay(empTable);
.
.
.
//empTable.setRowCount(1, true);
//empTable.setRowData(0, tableRowData);
empTable=新数据网格(25);
ListDataProvider provider=新的ListDataProvider(tableRowData);
provider.addDataDisplay(可空);
.
.
.
//可空。setRowCount(1,true);
//可空。setRowData(0,tableRowData);

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

我以前尝试过这个方法,也许我在provider.getList().add()中做了一些错误,但这次我跳过了它,只使用了ListDataProvider=new ListDataProvider(tableRowData);provider.addDataDisplay(可空);不知何故,它工作得很好非常感谢你的帮助。