4

私はグリッドパネルと私の列の1つを持っています

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

この列の幅を取得する方法ありがとう。

4

1 に答える 1

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();
    }

この場合、何がより良いオプションなのか本当にわかりません。また、レンダラー関数のビューとして gridpanel ではなく gridview を渡す理由もよくわかりません。いずれにせよ、これで始められるはずです。幸運を祈ります。

于 2013-10-03T06:03:16.740 に答える