4

下の図に示すように、2 つの列を持つ extjs Grid パネルに取り組んでいます。

ここに画像の説明を入力

私の要件は、対応する「タスクの説明」セル値が変更されるたびに「短い名前」セル値を変更することです。以下に示すように、「タスクの説明」列にエディターを使用しました。

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
    }
]

しかし、「ショートネーム」列にアクセスして、変更イベント機能から設定するにはどうすればよいですか。

解決策を教えてください。

前もって感謝します。

4

2 に答える 2

1

私はこの問題の解決策を得ました。

listeners : {
    change : function(field, newValue,o ,e) {
        var text = field.value;
        if(text.length <= 26 && !text.match(/[.:-]/)) {
            if(text.length == 26) {
                text = text[25]==' ' ? text : text.substring(0, text.lastIndexOf(' '));
            } 
            var selectedModel = this.up('grid').getSelectionModel().getSelection()[0];
            selectedModel.set('Name', text);
        }
    }
}
于 2013-09-03T09:51:36.203 に答える