我正在使用DataGrid
和ListDataProvider
一起在我的应用中显示各种行数据。对于大多数情况,可以立即从服务器获取所有内容。
现在,似乎有必要获取分页步骤的数据。这意味着,我的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}}。
答案 0 :(得分:0)
对于我的用例,最简单的解决方法是将我的AbstractTablePresenter
子类化为按需用例并使用AsyncDataProvider
,它带来了我需要的所有功能。关于我的设计的伤害不如预期的那么重(敲我的肩膀;-))。
首先尝试子类ListDataProvider
但是数据,rowCount,rowCountEvents和附加的分页器对象的关系是如此多样化,以至于你最终会覆盖ListDataProvider
的大多数方法和你的寻呼机实现。