我有一个DataGrid
带有TextInputCell
列的,使用ListDataProvider
. 当单元格中的值发生更改时,我正在为正在编辑的行创建一个RequestContext
并使用原始实体调用。RequestContext#edit
然后,我将代理的可变版本中的字段设置为已编辑单元格中的值。这一切都很好,我可以成功地将更改保存到数据库中。但是,在服务器上,我在保存更改之前修改了值,并将修改后的实体 (DTO) 发送回客户端。在Receiver#onSuccess
方法中,我将新实体存储在列表数据提供程序中,然后调用ListDataProvider#refresh
. 但是显示的值DataGrid
不会改变以反映服务器上的修改。我查看了提供给TextInputCell#getValue
方法,并且是正确的,即它是包含在服务器上应用的修改的值。
我尝试在网格中创建另一列只是 a TextCell
,并getValue
为该单元格提供相同的值;在这种情况下,显示的值被刷新正确更新,反映了从服务器返回的修改后的值。
所以,我的问题是:细胞从哪里获得它的价值?当我查看我的TextInputCell#getValue
方法返回的值时,它似乎是正确的值,但该值未显示在屏幕上(屏幕上显示的值是发送请求之前代理对象中的值服务器)。
注意:我查看了这个问题,但它不适用于我的情况。