如何在 ExtJS 网格中显示更改的值
Posted
技术标签:
【中文标题】如何在 ExtJS 网格中显示更改的值【英文标题】:How to display Altered value in ExtJS grid 【发布时间】:2016-08-23 05:54:07 【问题描述】:我有一个网格,其中显示来自后端的数据。数据格式是这样的
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);
但是显示有问题。
【问题讨论】:
【参考方案1】:您可以将渲染器函数用于将参数“R”指定为 dataIndex 的列。将为存储中的每条记录调用此函数,因此您可以编写逻辑以在此处显示空白 R 的替代值。这只会在 UI 上显示更改的值,而不会在实际存储记录中更改它。
检查这个例子 http://extjs.eu/ext-grid-renderer-danger/
【讨论】:
【参考方案2】:我可以想到另外两种方法来做到这一点。
在模型定义中,当您定义 R 列时,您可以添加一个“转换”函数以在从后端加载数据时填充该值。 http://docs.sencha.com/extjs/6.0.2-classic/Ext.data.field.Field.html#cfg-convert
在网格列定义中,您可以添加渲染器函数来计算该值。 http://docs.sencha.com/extjs/6.0.2-classic/Ext.grid.column.Column.html#cfg-renderer
【讨论】:
以上是关于如何在 ExtJS 网格中显示更改的值的主要内容,如果未能解决你的问题,请参考以下文章