读书人

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

发布时间: 2012-10-16 09:57:37 作者: rapoo

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 就可以获得两种值了。

读书人网 >Web前端

热点推荐