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 就可以获得两种值了。
Ext Combobox详解
本文深入探讨Ext框架中Combobox组件的使用方法,特别是如何正确获取displayField和valueField的值。通过实例代码展示了不同获取方法的效果,并解释了hiddenName属性的重要性。
1369

被折叠的 条评论
为什么被折叠?



