Ext.form.ComboBox() 每条记录中存放与获取多个值

时间: 2011-09-01 / 分类: JavaScript / 浏览次数: 521 views / 0个评论 发表评论

今天遇到一个情况:

我在做两个Combobox的联动,这两个Combobox在一个formPanel中,最后都是需要提交的。也就是一个valueField 和displayField 都是需要的,然而,我现在需要传另一个参数给后一个Combobox的ds,然而这个参数不是valueField 和displayField 中的任何一个。那么我就要想办法让Combobox能够存放更多的值。怎么处理呢。

找到了下面这个方法。很不错,解决了的问题。转了,希望也能解决你的问题。

截个图

image

以下是全文————————》

Ext.form.ComboBox() 每条记录中存放与获取多个值
例如ComboBox控件中在存放name和id的同时再存放一个状态代码在里面,那么如何来存放,又如何来存取哪?
其实这主要是和Ext中的存储器(Store)的关系比较大;
以下为示例部分:

  1. var comboStore = new Ext.data.Store({ 
  2. new Ext.data.Store({ 
  3.             proxy: new Ext.data.HttpProxy({ 
  4.                 url   : path+’/UsersInfo/getBranchById.json’}), 
  5.                 reader: new Ext.data.JsonReader({ 
  6.                     root         : ‘records’, 
  7.                     totalProperty: ‘totalCount’, 
  8.                     id           : ‘id’, 
  9.                     fields       : ['id','name',status] 
  10.                 }),//多存放一个状态值,即是每条记录中绑定了三个值,只要和后台返回值对应,也可更多
  11.                 sortInfo:{field: ‘id’, direction: ‘ASC’}, 
  12.                 autoLoad:true
  13.             }) 
  14.     }); 
  15. var combo = new Ext.form.ComboBox({ 
  16.         name         : ‘users’, 
  17.         hiddenName   : ‘users’, 
  18.         fieldLabel   : ‘用户’,  
  19.         emptyText    : ‘–请选择–’,   
  20.         allowBlank   : false, 
  21.         editable     : false, 
  22.         mode         : ‘remote’, 
  23.         valueField   : ‘id’,        //真实值
  24.         displayField : ‘name’,      //显示值
  25.         anchor       : ’25%’, 
  26.         triggerAction: ‘all’, 
  27.         store        : comboStore, 
  28.         listeners    : {‘select’:function(){ 
  29. //获取存储在ComboBox中的状态值值
  30.                 alert(combo.getStore().getAt(combo.selectedIndex).data.status); 
  31.         }} 
  32.     }); 

注:对与Ext.form.ComboBox的属性:selectedIndex在API中并不存在,不过此属性的确存在于源码中;

发表评论

您的昵称 *

您的邮箱 *

您的网站