2015-12-10 69 views
0

我試圖用widgetcolumn在Extjs 6中實現nestend網格(使用RowExpander不是我的任務的好解決方案)。extjs 6與小部件列嵌套網格

父網格商店中的每條記錄都有許多帶有「hasMany關聯」商店的子記錄,必須可以通過遠程組合框進行編輯。

但是嵌套的網格在extjs中有衝突。

它是如何現在看起來:http://joxi.ru/52aQMXdCZjZP20

的源代碼:

{ 
     xtype: 'widgetcolumn', 
     text: 'my-russian-header-text :)', 
     tdCls: 'cell-no-padding', 
     onWidgetAttach: function(column,widget,record) { 
      // record.projections() returns hasMany store 
      widget.bindStore(record.projections()); 
     }, 
     widget: { 
      xtype: 'grid', 
      viewType: 'tableview', 
      border: 0, 
      plugins: [{ ptype: 'cellediting', clicksToEdit: 1}], 
      hideHeaders: true, 
      scrollable: false, 
      columns: [ 
       { 
        dataIndex: 'user_id', 
        editor:{}, 
       } 
      ], 
      listeners: { 
       afterrender: function() { 
        this.getEl().swallowEvent([ 
         'mousedown', 'mouseup', 'click', 
         'contextmenu', 'mouseover', 'mouseout', 
         'dblclick', 'mousemove', 'focus' 
        ]); // advice from here: http://hmxamughal.blog.com/2012/10/23/grid-in-grid/ 
       } 
      } 
     } 
    }, 

我有這樣的錯誤:

  1. 遺漏的類型錯誤:無法讀取屬性空的 'isHeader'
  2. Uncaught TypeError:無法讀取屬性'isGroupHeader'爲空
  3. 超出最大調用堆棧大小

有人可以幫助找到很好的嵌套網格實現嗎?或爲我的需求提供不同的解決方案?

+0

這不起作用,我建議你尋找一種替代方案來在網格中嵌套網格。 –

回答

0

我有您的問題(使用rowexpander實際上),和我一起

Ext.create('Ext.grid.Panel', { 
    plugins : [{ 
     ptype  : 'rowexpander', 
     rowBodyTpl : ['<div id="expander-inner-{id}"></div>'], 
     pluginId: 'rowexpander' 
    }], 
    data: [{ 
     id: 1, 
     val: "foo" 
    }], 
    ... //other options 
}); 
var subgrid = Ext.create('Ext.grid.Panel', { 
    renderTo: 'expander-inner-1', 
    .... //other options 
}); 
subgrid.getEl().swallowEvent([ 
     'mousedown', 'mouseup', 'click', 
     'contextmenu', 'mouseover', 'mouseout', 
     'dblclick', 'mousemove', 'focusmove', 
     'focuschange', 'focusin', 'focusenter' 
]); 

通知的swallowEvent如何調用在內部網報,併吞噬'focus*'事件的數量解決它。對我而言,focusenter解決了這個難題,maximum call stack size exceeded。我發佈這個答案,如果它是微不相關的(你不想使用rowexpander),因爲我得到了非常相同的js異常,所以我希望它會有用。