`
空空儿
  • 浏览: 135062 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

ComboBox注意的几个小问题-- 值跑位,值显示,获取输入值

阅读更多
1。ComboBox加载数据之后,ComboBox里面的值跑位,不能正确对应到ComboBox里面。
原因:因为要传name的值到服务器端,使用到了隐藏属性hiddeName来传值,hiddenName的名是要和name一样的。如果id和name设置为相同的,就会不能正确对应。所以,comboBox的id和name 不能设置一样
new Ext.form.ComboBox({
id:"comboId",
name:"comboName",
hiddenName:"comboName"
});

2。 第二个问题是明明已经加载了数据之后store里面也有值,确没有再ComboBox里面显示,这个你就要注意你的ComboBox里面有没有设置valueField 和 displayField, valueField绑定到当前底层数据,相当于它的id,displayValue,绑定到当前底层数据对应的名词,顾名思义也就是显示出来的值。还要注意一下,它的映射是否也有写,field 里面是否写正确了。如果这两个属性没有,那就是值怎么也显示不出来的。还有一点是,得到的值从服务器端传回来,一定要记得有response.getWrite().print(json格式值); 有时前台都写正确了,但是还是没值,那就是没有将值传到前台

store : new Ext.Data.Store({          

     proxy: new Ext.Data.httpProxy({}),

    reader:new Ext.data.JsonReader({});

   field:["valueid","displayName"]                 

});

   new Ext.form.ComboBox({
id:"comboId",
name:"comboName",
hiddenName:"comboName",

store:store

valueField:"valueid"  , //要跟field里面对应,不然不能正确匹配

displayField:"dispalyField"
});

3. 获取ComboBox手动输入的值。手动输入的值是没有完全设置到ComboBox中value里面的,所以当我们去获取的时候,得到都是一个空字符串。

listeners : {
       render : function(f) {
        f.el.on('keyup', function(e) {
         f.setValue(f.getRawValue());
         vipStore.proxy = new Ext.data.HttpProxy({
          url : "vip_realtimeVipName.action?vipID="
            + f.getRawValue()
         });
         vipStore.load();
        });
       }

这几个问题总会一不小心就会碰到,要多加注意了。。
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics