读书人

Ext中combobox在GridPanel里显示数据有

发布时间: 2012-12-22 12:05:07 作者: rapoo

Ext中combobox在GridPanel里显示数据问题
一、首先我先写好一个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                      }}


读书人网 >编程

热点推荐