Extjs:在同一行中另一个单元格的每次更改时更改网格单元格值

Siv*_*mar 2 javascript extjs extjs-grid

我正在研究extjs Grid面板,它有2列,如下图所示.

在此输入图像描述

我的要求是在相应的"任务描述"单元格值的每次更改时更改"短名称"单元格值.我使用编辑器"任务描述"列,如下所示.

columns: [
    { 
        text: 'Task Description',  
        dataIndex: 'TaskDescription', 
        flex : 1.5, 
        editor: {
            xtype : 'textarea', 
            allowBlank : false,
            listeners : {
                change : function(field, e) {
                    var text = field.value;
                    if(text.length <= 26 && !text.match(/[.:-]/)) {
                        if(text.length == 26) {
                            text = text[25]==' ' ? text : text.substring(0, text.lastIndexOf(' '));
                        } 
                        //code to set short name cell value.
                    }
                }
            }
        } 
    },
    { 
        text: 'Short Name', 
        dataIndex: 'Name', 
        width: 130
    }
]
Run Code Online (Sandbox Code Playgroud)

但是如何访问"短名称"列以从更改事件功能设置它.

请建议我的解决方案.

提前致谢.

Dev*_*Dev 5

您可以使用编辑事件侦听器并根据需要播放记录.这里是 :

 listeners: {
    edit: function (editor, e, eOpts) {
        var text = e.record.data.name;
        console.log(text);
        if (text.length <= 26 && !text.match(/[.:-]/)) {
            if (text.length == 26) {
                text = text[25] == ' ' ? text : text.substring(0, text.lastIndexOf(' '));
            }
            //code to set short name cell value.
            var record = e.record;
            record.set("email", text); //Here you can set the value
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

他们有很多方法可以达到预期的任务.这是一种方式!! 作为参考,这里是小提琴