在Extjs的编码中,从gird表格里选择一条记录,加载到form表单里来,是经常要做的一件事。然后,当form里有combox的话,加载数据进来,往往只是单纯的加载了一个value,而不是显示我们想要的那个displayValue。
其实原因很简单,combox中的数据源是异步加载的方式,所以form.getForm.loadRecord(record)的时候,combox中的store此时还没有加载数据进来,so结果就如我们遇到的问题那样,combox最后显示的只是个value。
今×××了一下google,在其他人的blog上看到了解决办法。
store_combo是combox的store,store先load,在回调函数里,再进行form表单的数据加载。这样就解决问题了。
PS:如果各位还有更好的办法,请告诉我哦~!
- store_combo.load({
- callback : function(r, options, success) {
- if (success) {
- Ext.getCmp('register_form').getForm().loadRecord(record);
- } else {
- Ext.Msg.alert('失败','角色数据载入失败');
- }
- }
- });