如何在ExtJS网格中显示改变的值

How to display Altered value in ExtJS grid

本文关键字:显示 改变 网格 ExtJS      更新时间:2023-09-26

我有一个网格,其中我显示的数据来自后端。数据格式如

DESC:"H1",
DISP:"",
FID:474747,
VALUE : 0,
R:""

在这个R值没有到来,因此我从我的代码设置R值。

var record = gridEl.getSelectionModel().getSelections();
for (var i = 0; i < record.length; i++)
    record[i].set("R", RDetail); // RDetail is some value.

通过这样做,我能够将R数据添加到网格存储以及调试器中,当我检查它在UI中显示时。但当我关闭和刷新网格R值不显示在UI。

我也试过这些

store.reload();
store.commitChange();
grid.reconfigure(store);

但是显示有一些问题

对于参数'R'被赋值为dataIndex的列,可以使用渲染函数。对于存储中的每条记录都将调用此函数,因此您可以编写逻辑来显示这里空白R的替代值。这只会在UI上显示改变的值,而不会在实际的存储记录中改变它。

检查这个例子http://extjs.eu/ext-grid-renderer-danger/

我可以想到另外两种方法。

  1. 在模型定义中,当您定义R列时,您可以添加一个"convert"函数来在从后端加载数据时填充该值。http://docs.sencha.com/extjs/6.0.2-classic/Ext.data.field.Field.html cfg-convert

  2. 在网格列定义中,您可以添加一个渲染函数来计算该值。http://docs.sencha.com/extjs/6.0.2-classic/Ext.grid.column.Column.html cfg-renderer