日期:2014-05-16  浏览次数:21389 次

ExtJS中给ComboBox设定初始值的问题
我做了几个ComboBox联动,需要第一次显示时设定初始值,这个通过value可以指定,但是通过value指定时它显示的也是 

value的值,不能做到向后台传递的和前台显示的两个值不同,请高手指教。谢谢!!!

前面有的高手给予指点,但是没抓住指点,我在详细说一下:

  通过displayfield和valuefield是可以实现提交的值和显示的值不同,我问的关键是在打开页面有ComboBox有初始选定值

怎么实现,若我给它value赋个初值“教授”,前端显示的是”教授“那么提交的就是“教授”,而我想提交“教授”的 

ID ,若直接给value赋ID值,那么前台显示的就是ID值,所以不知道怎么实现。

------解决方案--------------------
帮顶
------解决方案--------------------
1. 有初始值的情况:
主要是配置store的autoLoad : true以及在load以后通过setValue设置value值,这样只要有匹配的value值存在,对应的text值就会显示。

2. 提交value,而非text:
不要用name属性,用hiddenName属性就可以了,这样提交的就是你的value值(也就是你说的教授ID)

代码如下:
var comboA = {
id: Ext.id(),
fieldLabel : "province",
hiddenName: "china.province",
xtype : "combo"
labelWidth : 150,
anchor : "95%",
columnWidth : "33%",
emptyText : "xxx",
editable : false,
allowBlank: false,
store : new Ext.data.Store({
proxy : new Ext.data.HttpProxy({
url : "cascadingComboTest.biz"
}),
reader : new Ext.data.JsonReader({
root : "comboMix"
}, ["text", "value"]),
remoteSort : false,
baseParams: {region: 1, scopeId: 1},
autoLoad : true,
listeners:{
load: function(){
Ext.getCmp(comboA.id).setValue(2);
}
}
}),
triggerAction : "all",
displayField : "text",
valueField : "value"


}
 

------解决方案--------------------
herrscher.qiang