一、首先我先写好一个ColumnModel,定义代码如下:
js代码:
var PAG007_clm_AddressCm = new Ext.grid.ColumnModel([
{header:'<center>都市名</center>',dataIndex:'CITY_NAME',editor: PAG007_cmb_City},
{header:'<center>住所</center>',dataIndex:'ADDRESS',editor:new Ext.form.TextField({allowBalank:false})},
{header:'<center>电话号码</center>',dataIndex:'TEL_NO',editor:new Ext.form.TextField({allowBalank:false})},
{header:'<center>电话号码种类</center>',dataIndex:'TEL_NO_TYPE',editor: new Ext.form.ComboBox({
id:'type',
name:'type',
readOnly:true,
fieldLabel: '电话号码种类,
hiddenName:'id',
store: PAG007_cmb_Type_Store,
displayField:'text',
valueField:'value',
typeAhead: true,
mode: 'local',
triggerAction: 'all',
emptyText:'请选择',
selectOnFocus:true
}),
renderer: function(value, cellmeta, record)
{
//通过匹配value取得ds索引
var index = PAG007_cmb_Type_Store.find(Ext.getCmp('type').valueField,value);
//通过索引取得记录ds中的记录集
var record = PAG007_cmb_Type_Store.getAt(index);
//返回记录集中的value字段的值
var value = "";
if (record)
{
value = record.data.text;
}
return value;//注意这个地方的value是上面displayField中的value
}
},
// {header:'<center>削除</center>',dataIndex:'ISCHECK'},
chb_delete
]);
二、定义的是EditorGridPanel:
var PAG007_AddressGridPanel = new Ext.grid.EditorGridPanel({
title: '当前联系方式,
cm : PAG007_clm_AddressCm,
sm : PAG007_rsm_AddressSm,
plugins:[chb_delete],
clicksToEdit:1,
loadMask : true,
region : 'center',
store : PAG007_AddressGridPanel_Store,
enableColumnResize : false,
enableColumnMove : true,
viewConfig : {
scrollOffset : 20,
forceFit : true
}
});
三、定义的是JsonStore:(我这里是用的静态的数据,动态的数据同样应该可行。)
var PAG007_cmb_Type_Store = new Gt.common.engine.JsonStore({
data : {
'root' :[
{'value' : '1','text' : '住宅'},
{'value' : '2','text' : '公司'},
{'value' : '3','text' : '手机'}
]
},
root : 'root',
fields : ['value', 'text']
});
四、关键部分代码(我用的是‘电话号码种类’的那列,我的种类是分'1'、'2'、'3',三种情况,是在后台数据库中取出来的,要对应前台的displayField显示):
{header:'<center>種類</center>',dataIndex:'TEL_NO_TYPE',editor: new Ext.form.ComboBox({
id:'type',
name:'type',
readOnly:true,
fieldLabel: '电话号码种类',
hiddenName:'id',
store: PAG007_cmb_Type_Store,
displayField:'text',
valueField:'value',
typeAhead: true,
mode: 'local',
triggerAction: 'all',
emptyText:'请选择',
selectOnFocus:true
}),
renderer: function(value, cellmeta, record)
{
//通过匹配value取得ds索引
var index = PAG007_cmb_Type_Store.find(Ext.getCmp('type').valueField,value);
//通过索引取得记录ds中的记录集
var record = PAG007_cmb_Type_Store.getAt(index);
//返回记录集中的value字段的值
var value = "";
if (record)
{
value = record.data.text;//对应store中的text字段(fields)
}
return value;//注意这个地方的value是上面displayField中的value
}
}