PDA

View Full Version : columnModelの一括定義



ak_ext
10 Mar 2009, 4:24 AM
下記のようにhtmlEncodeを定義する場合などで、
カラムが増えた時一括で定義する方法などはないでしょうか。

var cm=new Ext.grid.ColumnModel([
{
header:'会社名',
dataIndex:'Company',
width:200,
    renderer:Ext.util.Format.htmlEncode
},{
header:'電話番号',
dataIndex:'tel',
width:150
}

yuki
10 Mar 2009, 6:21 AM
普通にループを回す、では駄目なんでしょうか?:D

ak_ext
10 Mar 2009, 4:44 PM
ありがとうございます。
columnModelの要素に対してループで回す事ができるのでしょうか。

例えば既に定義してある。
var cm=new Ext.grid.ColumnModel([
{
header:'data',
dataIndex:'data',
width:100
},{
header:'data1',
dataIndex:'data1',
width:100
} .....
,{
header:'data100',
dataIndex:'data1',
width:100
} のようにすでに100個のカラムが定義されていて
  これにすべて renderer:Ext.util.Format.htmlEncode
を適用する場合のループの書き方が分かりません・・・

yuki
10 Mar 2009, 5:28 PM
ColumnModelをnewする前にrendererを設定するのであれば、


var columns = [
{header:'data', dataIndex:'data', width:100},
{header:'data1', dataIndex:'data1', width:100},
...
...
...
{header:'data100', dataIndex:'data1', width:100}
];

for(var i=0; i<columns.length; i++){
columns[i].renderer = Ext.util.Format.htmlEncode;
}

var cm = new Ext.grid.ColumnModel(columns);


newした後であれば、


var len = cm.getColumnCount();
for(var i=0; i<len; i++){
cm.setRenderer(i, Ext.util.Format.htmlEncode);
}


こんな感じでできると思います。