2016-04-01 16 views
0

'un Çoklu Örneğinde Satır Düzenleme Genişliği sorunu Özel xtype'ım (kılavuz) birden çok örneğim var. Bunlardan biri derleme zamanında bir görünümde takıldıktan ama diğerleri dinamik gibi afterRender olay diğer görünümlerde eklenir:Extjs 4.2: Özel Bileşen

var cmp = Ext.getCmp('secondTab'); 
cmp.insert(cmp.items.length, {xtype: 'customGrid', id:'customGrid2'}); 

Her şey iyi çalışıyor. Sorunlar rowEditing eklentisi ile.

enter image description here

Ama aynı zamanda benim özel Grid örneğini içeren diğer bazı sekme açtığınızda bu şuna benzer:: benim özel Izgara mevcut olduğu sekmeyi açtığınızda bu (doğru biri) benziyor

enter image description here

Birisi bana olası sorunun ne olabileceğini söyleyebilir mi? Satır düzenleme eklentisi için

Kod basittir:

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

cevap

0

Sonunda bu sorunu çözmek için başardı. Tek veya en iyi çözüm olup olmadığını bilmiyorum, ancak satır düzenleme eklentisini özel kılavuzumun çeşitli örneklerine dinamik olarak ekleyerek çözdüm. bu kadar

//code for row editing plugin given in my question but just for sample 
var plugin = Ext.create('Ext.grid.plugin.RowEditing', { 

     onCellClick: function (view, cell, colIdx, record, row, rowIdx, e){} , 
     startEditByClick: function(){}, 
     onEnterKey: function(){}, 

     listeners: { 
      edit: function(editor, e) { 
       //Whatever you want to do 
      } 
     } 
    }) 

var myGrid = Ext.getCmp('instanceOfMyCustomGrid'); 
plugin.init(myGrid); //This is important while dynamically inserting plugin 
myGrid.plugins = []; // If there is no other plugin for your grid, create an empty plugin array 
myGrid.plugins[0] = plugin; //Insert your plugin 

:

Yani Grid dinamik sokulmasından sonra, ben gibi eklentileri düzenleme satır ekledi. Benim için çalıştı. Eğer daha iyi bir çözüm hala bilen varsa, lütfen mesaj gönderin.