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' が起動していないことを確認しました。