使用ListDataProvider在GWT DataGrid中手动设置rowCount不起作用?

时间:2013-11-29 09:23:16

标签: gwt datagrid gwt-rpc

我正在使用DataGridListDataProvider一起在我的应用中显示各种行数据。对于大多数情况,可以立即从服务器获取所有内容。 现在,似乎有必要获取分页步骤的数据。这意味着,我的RPC调用每次返回10个项目以及可能结果的总数。

总计数用于在设置行数据后手动调用SimplePager来设置附加的datagrid.setRowCount(totalCount, true)之后很重要, 因为setRowData也会触发具有特定项目数的setRowCount调用(在我的情况下总是10)。

问题是,在手动设置行计数后,另一位与会者ScheduledCommand会触发flushCommand,而setRowCount会触发ListDataProvider来电 将计数设置为10.结果:寻呼机显示1-10的10,并且寻呼机控件被禁用。

即使AsyncDataProvider每次只有10个项目,我如何强制执行某个rowCount?

您可能会建议使用AbstractTablePresenter<DTO, ...>。但是,已经有一个非常复杂的通用设计(ListDataProvider实现了获取数据并将其推送到通用显示的所有逻辑) 由ListDataProviders支持。很难解释,但实际上,我更希望继续使用{{1}}。

1 个答案:

答案 0 :(得分:0)

对于我的用例,最简单的解决方法是将我的AbstractTablePresenter子类化为按需用例并使用AsyncDataProvider,它带来了我需要的所有功能。关于我的设计的伤害不如预期的那么重(敲我的肩膀;-))。

首先尝试子类ListDataProvider但是数据,rowCount,rowCountEvents和附加的分页器对象的关系是如此多样化,以至于你最终会覆盖ListDataProvider的大多数方法和你的寻呼机实现。