更改其值时更新RowEditing字段

时间:2014-04-03 22:02:12

标签: extjs grid extjs4 roweditor

我正在使用Extjs 4.2,所以我有一个带有rowediting插件的网格。一切正常,我想知道如何更新一个字段值,具体取决于另一个字段。我的意思是,例如,如果在我的网格中我有field1和field2,当需要更改其中一个时,我需要使用field3 + field1值更新field2值。通常使用jquery我们可以为每个字段编写一个更改事件,但是我如何在rowediting事件上执行此操作?

这可能吗?

3 个答案:

答案 0 :(得分:2)

您可以使用edit的{​​{1}}个事件,如下所示:

Sencha Fiddle:Grid RowEditor - Change cell value based on condition

rowedit

答案 1 :(得分:0)

使用RowEditor时,e.field值完全取决于单击以编辑行的字段。

说明问题:

  1. 在上一个答案中,打开小提琴链接(https://fiddle.sencha.com/#fiddle/4pj)。
  2. 双击电子邮件字段并更改名称。
  3. 处理程序不会更新结果字段,因为e.field现在将是'email'而不是'name'。
  4. 也就是说,行编辑器会将您单击的字段视为已编辑字段。这没有意义,因为它是一个“行”编辑器,很可能用于编辑行中的多个字段。

    要获取仅修改字段的列表,请使用e.record.getChanges()。这些只会为您提供修改后的字段及其新值。

答案 2 :(得分:0)

您必须向列中添加编辑器,编辑器就像任何组件,具有侦听器,类型等,然后添加更改侦听器

实施例: ...

{
    header: 'HeaderName',
    dataIndex: 'man_peso',
    type: 'number',
    width: 50,
editor: {
        enableKeyEvents: true,
        listeners: {
            change: function(c, e, eOpts) {
                //here you can modify others components
            }
        },
        xtype: 'textfield',
        maskRe: /[0-9\.]/,
        maxLength: 16
    },

...