2013-10-03 88 views
3

我有一個像的ExtJS網格 - 如何獲得列的寬度渲染功能

columns: [ 
     ... 
     { text: 'Name', dataIndex: 'name' , width: 200, 
      renderer: function (value) { 
        // how to get width of this column (200) 
        //alert(this.width); // this is width of gridpanel 
      } 
     } 
     ... 
], 

我列的GridPanel中,一個如何得到此列的感謝寬度。

回答

7

相當肯定,這不是完成它的理想方法,但它的工作原理。除了值之外,還有很多其他值傳遞給了渲染器函數。通過DOM檢查,這將讓你列的寬度,但我不認爲它的東西,我會信任的工作,因爲他們更新的ExtJS:

renderer: function (value, metaData, record, rowIndex, colIndex, store, view) { 
    return view.ownerCt.columns[colIndex].getWidth(); 
} 

或者,你可以使用組件的查詢來獲得網格面板視圖,使用行索引來查找列,然後得到它的寬度是相同的:

renderer: function (value, metaData, record, rowIndex, colIndex, store, view) { 
     var grid = Ext.ComponentQuery.query('#gridId')[0]; 
     return grid.columns[colIndex].getWidth(); 
    } 

我真的不知道什麼是在這種情況下,更好的選擇了,不知道爲什麼他們通過gridview而不是gridpanel作爲渲染器函數中的視圖。無論如何,這應該讓你開始,祝你好運。