私のカスタムxtype(グリッド)のインスタンスが複数あります。そのうちの一つは、コンパイル時に1つのビューに挿入されているが、他は動的に似afterrenderイベントで他のビューに挿入されていますExtjs 4.2:カスタムコンポーネントの複数のインスタンスの場合の行編集の幅の問題
var cmp = Ext.getCmp('secondTab');
cmp.insert(cmp.items.length, {xtype: 'customGrid', id:'customGrid2'});
すべてが正常に動作しています。問題はrowEditingプラグインにあります。私は私のカスタムグリッドが存在するタブを開くと、この(正しい)のようになります。
しかし、私はまた私のカスタムグリッドのインスタンスが含まれているいくつかの他のタブを開いたときには、次のようになります。
誰かが何が可能に問題になることを教えてもらえますか?行編集プラグインの
コードは単純です:
plugins: [
Ext.create('Ext.grid.plugin.RowEditing', {
pluginId: 'rowEditing',
autoCancel: false,
// Preventing editing mode by click on any cell
onCellClick: function (view, cell, colIdx, record, row, rowIdx, e){} ,
startEditByClick: function(){},
onEnterKey: function(){},
// Listening various event of plugin
listeners: {
/**
* @event edit
* Fires after a editing
* Calling respective controller method.
* @param {Ext.grid.plugin.Editing} editor
*/
edit: function(editor, e) {
// I am calling my controller method here to add a new record in this grid code is pasted here
var store = Ext.getStore('teilgewerke_store_neu');
var r = Ext.create('MyApp.model.MyModel',{'name': "", 'date':"", 'text' : ""});
store.proxy.url = "someUrl";
var result = store.add(r);
var rowEditingPlugin = Ext.getCmp(this.viewParentId).getPlugin('rowEditing');
rowEditingPlugin.startEdit(r);
},
/**
* @event canceledit
* Fires when the user started editing but then cancelled the edit. Enable the Hinzufaugen Button and reload the grid.
* @param {Ext.grid.plugin.Editing} editor
*/
canceledit: function(editor, context, eOpt){
//My own logic to enable disable stuff
}
}
})
]