0

方法:GridPanelの列幅の自動サイズ変更+ExtJS4のグリッド内のすべての列値の読み取り

問題1:とにかく、返される列のデータ値の長さに基づいて、グリッドパネルの列の幅を自動的に設定できますか(列の幅=最大データ値の文字列の長さ)

問題2:上記を達成するには(および他の理由で)、特定のグリッド列の値を取得する方法を知る必要がありますか?ロジックがわかったら、それを列レンダラー関数として実装する必要がありますか?列レンダラー関数は毎回呼び出され、データレコードが読み取られますか(その後、過剰になります)?その場合、オーバーライドできる他の関数はありますか?

Webで見つけたほとんどのソリューション(Grid Column Width Calculator、autoResizeColumnsなど)は以前のバージョン用であり、EXTJS4バージョンを使用しています。

よろしくお願いしますスコット

4

3 に答える 3

1

実際には、コンテンツの幅とヘッダーに基づいてグリッド列のサイズを自動的に変更するExtjs4プラグインがあります。

リンクは次のとおりです。Extjs4列の自動サイズ変更プラグイン

于 2013-02-20T15:24:22.697 に答える
0
  1. 残念だけど違う。最善の策は、一般的に固定されているデータに指定された幅を設定してから、を使用して他の列を設定することflexです。(またはプラグインを作成/待機します)。

  2. 値はに格納されずgridgrid'sに格納されstoreます。store問題のをループし、指定された列からすべての値を取得する必要があります。例えば:

    Ext.Array.each(Ext.StoreManager.get('myStore').getRange(0), function(record){
        console.log(record.get("myColumnName")); 
    });
    
于 2011-08-31T02:39:54.630 に答える
0

ここで説明するように、CSSを使用して列をラップする一時的な修正を見つけました: ExtJS4-グリッドパネルでの列ヘッダーのラップ

extjscssに以下を追加します

.x-column-header-inner {
    line-height: normal;
    padding-top: 3px !important;
    padding-bottom: 3px !important;
    text-align: center;
    top: 20%;
}

.x-column-header-inner .x-column-header-text {
    white-space: normal;
}
于 2011-09-22T09:04:55.043 に答える