Extjs中对combobox赋值时,如何在对displayfield赋值时使其valuefield也正确赋值呢?

请教各位大侠,我在Extjs表单的初始化和提交中遇到了Combobox赋初值并提交的矛盾:具体细节是这样的:前提:该combox定义valueField为Id,displ... 请教各位大侠,我在Extjs表单的初始化和提交中遇到了Combobox赋初值并提交的矛盾:
具体细节是这样的:
前提:该combox定义valueField为Id,displayField为Name,name定义为Id,后台需要获得Id
情况1:若我使用XX.XX.setValue(Name)或XX.XX.setRawValue(Name)进行赋值,则表单显示正常,但若不对
该combox做任何操作就提交时(下同)获取的是Name(实质应该获取的是Id);
情况2:若我使用XX.XX.setValue(Id)进行赋值,页面打开时,若Id不为0时,Combox会正常显示displayfield
的值,但会引发Combox不能为空的验证,即明明combox有值却提示该处不能为空,虽然也能正常提
交,但是页面显示不正常;若遇到Id为0时,则Combox无法显示displayfield的值(store中有Id为0的
record);
情况3:若我同时使用以上两种方法先后进行赋值,则后使用的方法会覆盖前面的方法,即根据使用顺序不同
出现两种异常情况的一种。
对于情况1,只要在XX.XX.setRawValue(Name)后使该combox正确获取store中的value值就行了;
对于情况2,只要在XX.XX.setValue(Id)时不引发combox本身的为空验证就行了。但是我不知道有什么方法可以实现,百度了也没有找到(改变name和hiddenName的设置也没有效果), 请教各位大侠,我该怎么破呢?若能解决,感激涕零。(财富值只有20了,请大家不要嫌弃)
谢谢大家了,我已经知道怎么解决了,采用情况2中的赋值方法,但需要在改赋值语句之前load该combobox的store,就不会出现验证为空的红线
展开
 我来答
bourne_scl
2013-07-22 · TA获得超过609个赞
知道小有建树答主
回答量:603
采纳率:0%
帮助的人:364万
展开全部
你代码写错了

贴代码吧

帮你看看
追问

  好的,太谢谢啦。代码分为两个部分(因为字符太多我就改成图片了):

  


  



追答
是的 ,combobox组件使用顺序一般如下
1.定义combobox组件的store

2.加载store数据
3.定义combobox组件,并设置store
4.对combobox赋值
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式