Ext 2.x中,关于combobox的取值问题

Ext中,关于combobox的取值问题一直困扰着很多程序员,刚刚我摸索了好久,终于找出了些规律。

下面这个是我的combo的代码(节选)

 

                  {
                   fieldLabel:"用户身份",
                   xtype:"combo",
                   id:"status_id",
                   width:145,
                   editable:false, //不可编辑
                   hiddenName:'identity',
                   displayField:"name",
                   valueField:"level",
                   store:myStore,
                   mode:"remote",
		  emptyText:"请选择登录身份",
                   allowBlank:false,
                   blankText:"用身份不能为空,请选择!",
                   triggerAction:"all"//每次选中一项,之后再选也会将所有列表显示出来。
                  }

 

 其中myStore如下:

 

    var myStore = new Ext.data.Store({
        url:"tools/XmlReader.aspx?xml=roles.xml", //这里,有一个知识点,我另写一篇博客再介绍
        reader:new Ext.data.XmlReader({
            record:"role",
            id:"id"
        },["name","level"])
    });

 

 试了四种取值方式,结果分别如下:

myForm.form.findField("name").getValue() --->displayField中的值,即下拉时看到的值

myForm.form.findField("name").getRawValue() --->也是displayField中的值

myForm.form.findField("identity").getRawValue() --->也是displayField中的值

myForm.form.findField("identity").getValue() --->valueField中的值

 

这种设计方式确实很另人困惑

其实在combobox中 ,hiddenName 和 id 属性的区别是,id只能得到下拉时看到的文字,而hiddenName才是提交到后台的value。如果没有设置hiddenName,在后台是接收不到值的,这个大家一定要注意。getValue() 得到的是combobox 的 value 值,getRawValue() 得到的是显示出来的值,所以我们一般只需要设置一下displayField 和 valueField ,再设置一下hiddenName 就可以获得两种值了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值