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,就不会出现验证为空的红线 展开
具体细节是这样的:
前提:该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,就不会出现验证为空的红线 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询