如何在 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 网格中显示更改的值的主要内容,如果未能解决你的问题,请参考以下文章

extjs 4 如何更改网格上显示的列下拉列表的顺序

在 extjs 网格中选中复选框时如何取消突出显示该行

如何在 ExtJs 中的回调函数后更改隐藏值

如何在设置记录数据时屏蔽 Extjs 网格并在设置后取消屏蔽?

json 数组未显示在 extjs 网格中

由于本地存储代理,Extjs 网格面板最多显示 25 行。如何更改此限制值?