Ext comboBox 值回填、手动设置value时要注意的地方

有时需要使用一个旧值填写到一个comboBox 表单中,可以使用basicform的setValues()方法和comboBox 的setValue()方法,但是有一个问题,设置后,comboBox 的value是对了,但一般来说,我们并想显示这个值,而是显示与这个值相关标签。当数据源是本地数据源时,这个问题不会出现。当数据源是远程,也就是从服务器端取数据时会有这个问题。先看一下如下的代码

var formP = new Ext.form.FormPanel({
  items:[
      {fieldLabel:'aaaa',name:'mb'},
      new Ext.form.ComboBox({
         name:'ab',
         hiddenName:'ab',
         valueField:'value',
         displayField:'key',
        typeAhead:true,mode:'remote',
         store:new Ext.data.SimpleStore  ({
                autoLoad:true,
                url:getdata.jsp',
                fields:['key','value'] 
                })       
       })
      ]
})
formP.setValues([id:'ab',value:'11']); 

上面的代码会有问题,但是如果把最后一行代码用一个按扭来触发,这样能达到我们要的效果,大家可以试一下,原因就是store是异步工作的,当formP.setValues([id:'ab',value:'11']); 执行时,sotre还没有完全加载,这才是根本的原因。知道这点后就能解决我们前面遇到的问题了。

你可能感兴趣的:(jsp,工作,ext)