将Google App Engine与GWT Celltable集成用于大型数据集

时间:2011-06-10 20:46:40

标签: google-app-engine asynchronous gwt-2.2-celltable dataprovider

我目前正在尝试为我的基于数据存储区的Web应用程序实现gwt前端。我希望有一些类似我的AsyncServices(gin)从服务器获取数据并在Celltable中显示该数据。由于我的数据集可能非常大,我希望每次用户点击页面前进/按钮时都会获取该数据。

private CellTable table = new CellTable(); scheduleTable = new CellTable();

SimplePager.Resources pagerResources = GWT.create(SimplePager.Resources.class); pager = new SimplePager(TextLocation.CENTER, pagerResources, false, 0, true); pager.setDisplay(table);

provider = new AsyncDataProvider() { @Override protected void onRangeChanged(HasData display) { //TODO: Get and Show the appropriate data from GAE here! } };

provider.addDataDisplay(table);

1 个答案:

答案 0 :(得分:1)

是的,这是可能的。在这里,我就是这样做的。

实施抽象寻呼机。我必须创建一个Composite Widget并在构造函数中初始化Widget。

我曾经使用过两个按钮&用于分页前一个和下一个的标签并分别显示该页面。在下一个按钮的clickHandler中,我调用RPC并获取我想要显示的数据列表。然后将列表附加到celltable的dataprovider的现有列表中。然后调用数据提供程序的flush方法。这会将更改推送到单元格表格的显示上。如果您的单元格表仍然没有反映数据,它应该只是再次刷新数据提供者或使用setPageStart&表setPageSize并设置新范围。

您必须覆盖onRangeOrRowCountChanged这是显示您所在页面的位置,并执行您的寻呼机可能需要做的任何事情。

对于上一个按钮,只需调用this.previous(),因为抽象寻呼机提供了您需要的所有功能。我们使用自己的函数来填充表,而不是使用this.next()。并转到下一页。