基于 extjs 网格中的另一个组合框填充字段
Posted
技术标签:
【中文标题】基于 extjs 网格中的另一个组合框填充字段【英文标题】:Populate Field based on another Combo Box in grid of extjs 【发布时间】:2019-11-08 11:18:59 【问题描述】:在网格中,我在列字段上有三列有组合框,并且在更改组合框值时自动填充另一列相应的字段如何执行此 extjs
enter image description here
网格代码请参见上图。
我的功能在下面
autoPopulateCsid: function(grid, rowIndex, colIndex, item, e, record, row, action)
/// 我无法获得我正在编辑的整个网格记录/行
我必须在函数中获取记录,这样我才能更新记录字段,它会自动变脏。所以在取消时,我将丢弃我对该行的所有更改
【问题讨论】:
【参考方案1】:组合框select
事件没有所有这些参数,它实际接收的参数是combobox, newValue, oldValue, eOpts
从那里你可以像这样从你的编辑器组件中获取你的“行记录”。
autoPopulateCsid: function(combobox, newValue, oldValue, eOpts)
let myRecord = combobox.up('editor').context.record;
myRecord.set('collateralAgreement',newValue);
如果您不使用 myRecord.commit(),记录将被标记为脏记录,之后如果您想丢弃这些更改,您可以在网格存储中使用 rejectChanges()
。
【讨论】:
很高兴为您提供帮助,欢迎来到 Stack Overflow。如果此答案或任何其他答案解决了您的问题,请将其标记为已接受。 如果我更改 myRecord 的值.. 它会如何反映在原始网格中? 编辑了答案来解释这一点,基本上,您需要使用commit()
将更改提交到网格的存储
如果我设置 myRecord.set('collateralAgreement',newValue); myRecord.commit();它不会使网格中的字段变脏。如果我更新任何记录,我也希望该字段应该是脏的。
对不起,如果你想记录脏,你不需要使用commit
,再次更新答案。以上是关于基于 extjs 网格中的另一个组合框填充字段的主要内容,如果未能解决你的问题,请参考以下文章