1

Extjs 4.1.1 を使用しています。私は MVC に従っているため、「edit」および「beforeedit」関数 (rowEditing プラグイン) をグリッドから移動することにしました。

listeners: {'edit': function(editor, e) {
    ...
    },'beforeedit': function(editor, e) {
    ...
    }}

Ext JS 4 - コントローラー内でrowEditor を制御する方法

私の新しいコードは次のようになります。

init: function() {

    this.control({          

        'myGrid': {
            edit: this.onRowEdit
        },

        'myGrid': {
            beforeedit: this.onRowBeforeEdit
        },

    });

},

onRowEdit: function(editor, e) {
    ... // Fires only when 'beforeedit' not present in this.control
},

onRowBeforeEdit: function(editor, e) {
    ... // Always fires
},

これで、「beforeedit」が正常に起動します。私の問題は、「編集前」が存在しない場合にのみ「編集」が起動することです。誰も同じ問題を抱えていましたか?もちろん、古いグリッドリスナーのような方法は、両方でうまく機能しました。

編集 this.control() で最初に 'beforedit' を定義し、2 番目に 'edit' を定義すると、'beforeedit' が起動していないことを確認しました。

4

1 に答える 1

3

それらを同じセレクターに入れます。

init: function() {

    this.control({          

        'myGrid': {
            edit: this.onRowEdit,
            beforeedit: this.onRowBeforeEdit
        }    
    });

}

私がこれを行う場合、それは同じ問題です:

var name = {
   first: 'John',
   first: 'Doe'
};
alert(name.first); //will show a messagebox with 'Doe'
于 2012-11-07T12:44:43.367 に答える