Ext3動態修改EditorGridPanel的列模型renderer(js函數動態建立)

本質上屬於js函數動態建立問題。服務器

如今有這樣一個需求,Ext.grid.EditorGridPanel的Ext.grid.ColumnModel的某一列是一個Ext.form.ComboBox,熟悉這個的人就知道存在一個valueField和displayField的問題,以下所示,函數

new Ext.grid.Column({
	header : '編號',
	dataIndex : 'idserial',
	width : 120,
	id : 'idserial',
	name : 'idserial',
	editor : new Ext.form.ComboBox({
		store : Ext.dataMap.get('func_id_MAP_T_FUNC_LIST_Store'),
		valueField : 'value',
		displayField : 'display',
		typeAhead : false,
		triggerAction : 'all',
		lazyRender : true
	}),
	renderer : Ext.dataMap.get('func_id_MAP_T_FUNC_LIST_Renderer')
})

這裏就用renderer屬性來控制「顯示」和「值」之間的轉換,而如今這個store是從服務器拿數據的Ext.data.JsonStore,所以在這個Ext.grid.EditorGridPanel渲染完畢以後這裏的renderer才能根據這個store的數據動態生成一個rendererFunc函數,也就說這個renderer是後來才動態生成的,這裏記錄瞭如何動態生成renderer的過程spa

s=Ext.dataMap.get('func_id_MAP_T_FUNC_LIST_Store');
grid=Ext.getCmp('mytableGrid');
cm=grid.getColumnModel();
idcm=cm.getColumnById('idserial');
idcm.renderer;
idcm.renderer = new Function('value', "if(value=='kbzfzl001'){return '開閉站負載率';}else if(value=='zzzpfzl001'){return '重載直配負載率';}else if(value=='kmggz001'){return '看門狗故障';}else if(value=='khzb001'){return '考覈指標';}else if(value=='gfhjs001'){return '過負荷監視';}else if(value=='bdzfzl001'){return '變電站負載率';}else if(value=='ztfzl001'){return '自投負載率';}else if(value=='dcnfzl001'){return '電採暖負載率';}else if(value=='sgbj001'){return '事故報警';}");
grid.getStore().reload();

咱們看到一開始這裏的idcm.renderer是undifined的,後來咱們給他換了一下,而後再reload一下grid就能夠了code

相關文章
相關標籤/搜索