Extjs网格-如何在渲染器函数中获取列的宽度

Extjs网格-如何在渲染器函数中获取列的宽度,extjs,extjs4.1,Extjs,Extjs4.1,我有一个gridpanel和一个类似 columns: [ ... { text: 'Name', dataIndex: 'name' , width: 200, renderer: function (value) { // how to get width of this column (200) //alert(this.width); // this is

我有一个gridpanel和一个类似

 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
             }
        }
        ...
 ],

如何获得此栏的宽度,谢谢。

可以肯定这不是一种理想的方法,但它确实有效。除了值之外,还有许多其他值传递给渲染器函数。通过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作为视图。无论如何,这会让你开始,祝你好运