Ext.form.ComboBox() 每条记录中存放与获取多个值
今天遇到一个情况:
我在做两个Combobox的联动,这两个Combobox在一个formPanel中,最后都是需要提交的。也就是一个valueField 和displayField 都是需要的,然而,我现在需要传另一个参数给后一个Combobox的ds,然而这个参数不是valueField 和displayField 中的任何一个。那么我就要想办法让Combobox能够存放更多的值。怎么处理呢。
找到了下面这个方法。很不错,解决了的问题。转了,希望也能解决你的问题。
截个图
以下是全文————————》
Ext.form.ComboBox() 每条记录中存放与获取多个值
例如ComboBox控件中在存放name和id的同时再存放一个状态代码在里面,那么如何来存放,又如何来存取哪?
其实这主要是和Ext中的存储器(Store)的关系比较大;
以下为示例部分:
- var comboStore = new Ext.data.Store({
- new Ext.data.Store({
- proxy: new Ext.data.HttpProxy({
- url : path+’/UsersInfo/getBranchById.json’}),
- reader: new Ext.data.JsonReader({
- root : ‘records’,
- totalProperty: ‘totalCount’,
- id : ‘id’,
- fields : ['id','name',status]
- }),//多存放一个状态值,即是每条记录中绑定了三个值,只要和后台返回值对应,也可更多
- sortInfo:{field: ‘id’, direction: ‘ASC’},
- autoLoad:true
- })
- });
- var combo = new Ext.form.ComboBox({
- name : ‘users’,
- hiddenName : ‘users’,
- fieldLabel : ‘用户’,
- emptyText : ‘–请选择–’,
- allowBlank : false,
- editable : false,
- mode : ‘remote’,
- valueField : ‘id’, //真实值
- displayField : ‘name’, //显示值
- anchor : ’25%’,
- triggerAction: ‘all’,
- store : comboStore,
- listeners : {‘select’:function(){
- //获取存储在ComboBox中的状态值值
- alert(combo.getStore().getAt(combo.selectedIndex).data.status);
- }}
- });
注:对与Ext.form.ComboBox的属性:selectedIndex在API中并不存在,不过此属性的确存在于源码中;

