52,797
社区成员
发帖
与我相关
我的任务
分享
var column = [], record = [];
/*动态得到列表的列模型*/
Ext.Ajax.request({
url: "Module/StaffDeduct/StaffDeductHandler.ashx",
params: { action: "GetPositionColumn" },
method: "POST",
success: function(response, ops) {
var o = Ext.decode(response.responseText);
column = o.column;
record = o.record;
/*你的操作*/
}
})
Ext的grid表头也是数组对象。也是可以从数据库中取到的。一般是根据数据库进行配置的,很少有要动态的表头需求。
columns: [
{
id: 'description',
header: "Task",
width: 80,
sortable: true,
dataIndex: 'description',
summaryType: 'count',
hideable: false,
summaryRenderer: function(v, params, data){
return ((v === 0 || v > 1) ? '(' + v +' Tasks)' : '(1 Task)');
},
editor: new Ext.form.TextField({
allowBlank: false
})
},{
header: "Project",
width: 20,
sortable: true,
dataIndex: 'project'
},{
header: "Due Date",
width: 25,
sortable: true,
dataIndex: 'due',
summaryType:'max',
renderer: Ext.util.Format.dateRenderer('m/d/Y'),
editor: new Ext.form.DateField({
format: 'm/d/Y'
})
}];
后台代码:
String columns = "";
Vector = getHeads(); //从数据库读取heads
for(int i=0; i<heads.size(); i++) {
//拼接columns字符串,最好用StringBuffer代替String
columns += "{header:" + heads.get(i) + ", dataIndex:" + heads.get(i) + "},\n";
}
columns.substring(0, columns.length() - 1); //去掉最后一个逗号
//后台代码完毕,将columns变量放到前台可以获取的作用域中
前台代码,在初始化ColumnModel的地方引用后台的columns变量既可
new Ext.grid.ColumnModel([
${columns}
]);