使用ListDataProvider在GWT DataGrid中手动设置行数不起作用?
我正在使用使用ListDataProvider在GWT DataGrid中手动设置行数不起作用?,gwt,datagrid,gwt-rpc,Gwt,Datagrid,Gwt Rpc,我正在使用DataGrid和ListDataProvider来显示应用程序中的各种行数据。在大多数情况下,可以立即从服务器获取所有内容。 现在,似乎有必要获取分页步骤上的数据。这意味着,我的RPC调用每次返回10项以及可能结果的总数 设置行数据后,通过手动调用datagrid.setRowCount(totalCount,true),使用总计数设置附加的SimplePage。在这里重要的是, 因为setRowData还会触发一个具体项数的setRowCount调用(在我的例子中总是10) 问题是
DataGrid
和ListDataProvider
来显示应用程序中的各种行数据。在大多数情况下,可以立即从服务器获取所有内容。
现在,似乎有必要获取分页步骤上的数据。这意味着,我的RPC调用每次返回10项以及可能结果的总数
设置行数据后,通过手动调用datagrid.setRowCount(totalCount,true)
,使用总计数设置附加的SimplePage
。在这里重要的是,
因为setRowData还会触发一个具体项数的setRowCount调用(在我的例子中总是10)
问题是,在手动设置行计数后,另一个参与者,ScheduledCommand
触发一个flushCommand
,该命令反过来触发一个setRowCount
调用
将计数设置回10。结果:寻呼机显示10中的1-10,并且寻呼机控件被禁用
即使ListDataProvider
每次只有10项,我如何强制执行特定的行数
您可能建议使用AsyncDataProvider
。然而,已经有一个相当复杂的通用设计(AbstractTablePresenter
实现所有逻辑来获取数据并将其推送到通用显示)
它由ListDataProviders支持。很难解释,但事实上,我更愿意继续使用
ListDataProvider
用于我的用例,最简单的修复方法是将我的AbstractTablePresenter
子类化为随需应变用例,并使用一个AsyncDataProvider
,它提供了我需要的所有功能。与我的设计有关的伤害没有预期的那么重(敲击我的肩膀;-)
试图先将
ListDataProvider
子类化,但数据、行数、,rowCountEvents和附加的寻呼机对象非常多,最终您将覆盖ListDataProvider
的大多数方法和寻呼机实现。如何处理下一页请求?我的演示者注册为rangeChangeEvents的处理程序,并触发加载当前页数据的RPC调用。