いくつかの列が非表示になっているExtJSパネルがあります。ExtJS列のCSSをレンダリングした後に変更する
列が非表示に設定されているかどうかによって、これらの列のCSSを変更できますか?これは可能ですか?私は前にこれを試してみて、これをやったことがない
いくつかの列が非表示になっているExtJSパネルがあります。ExtJS列のCSSをレンダリングした後に変更する
列が非表示に設定されているかどうかによって、これらの列のCSSを変更できますか?これは可能ですか?私は前にこれを試してみて、これをやったことがない
まず、DOMの観点から見たようなものはありません。同じクラス名を持つ細胞(div
sおよびactualy td
S)の束があります。
------------------------------------------------------------------- | div#gridcolumn-1018 | div#gridcolumn-1019 | |-----------------------------------------------------------------| | td.x-grid-cell-gridcolumn-1018 | td.x-grid-cell-gridcolumn-1019 | | td.x-grid-cell-gridcolumn-1018 | td.x-grid-cell-gridcolumn-1019 | | td.x-grid-cell-gridcolumn-1018 | td.x-grid-cell-gridcolumn-1019 | | ... | ... | -------------------------------------------------------------------
だから、あなたのようなことをやっているとき:あなたはdiv#gridcolumn-1019
にすべてではないにクラスを追加している
grid.columns[1].addCls('myCls');
他の列のセル。ですから、このような何かをしなければならない隠し列の列のすべてのセルにクラスを追加する
:
grid.column[1].on('hide', function(column){
var id = column.getId(); // gridcolumn-1019
var cells = Ext.DomQuery.select('.x-grid-cell-'+id);
column.addCls('myCls');
for (var i = 0; i < cells.length; i++)
Ext.fly(cells[i]).addCls('myCls');
}
UPDATE:は「列」を何Ext.fly(cells[i]).addCls('myCls');
ありがとうございました。私は、最後の行「cells [i] .addCls( 'myCls');」を指摘したいだけです。セル[i]はDOM要素ですが、cssに直接アクセスすることはできません –
:columnmodelの
使用hiddenchange : (ColumnModel this, Number columnIndex, Boolean hidden)
イベント。 this.getColumnById(this.getColumnId(columnIndex))
を使用して列を取得し、列のrenderer
プロパティにアクセスします。具体的には、からcolumn
のcss
設定オプションを確認します。
を修正するために、間違った
cells[i].addCls('myCls');
を変更平均?それはグリッドの列か列レイアウトのパネルの列ですか? –@分子 - グリッド列 –