Extjs的下拉框combo传多个值到后台

工作中遇到的一个问题,用extjs想后台传递多个值得情况下,后台每次得到的都是第一个值,
(设置extjs 的combox 多选设置属性multiSelect :true );
解决办法:
通过配置隐藏表单的形式:
{
                name:'news_shequ',
                id:'news_shequ',
                allowBlank:true,
                width:260,
                multiSelect :true,
                xtype:'combo',
                id:'news_shequ',
                store:store,
                editable:false,
                triggerAction : 'all',
                queryMode : 'local',
                displayField : 'item',
                valueField : 'value',
                fieldLabel : '发布到(社区)',
                emptyText:'默认全部社区..',
                listeners:{
                     'change':function(){
                             Ext.getCmp("shequ_hid").setValue(Ext.getCmp("news_shequ").getValue());
                        }
                }

            } ,new Ext.form.Hidden({
                name:'shequ_hid',  
                id:'shequ_hid'  
            })


原理是,每次选择下拉框,总会得到我们所选的值,我们先将下拉框的值得到,然后再赋值给隐藏表单传到后台;这样后台就得到多个值了。

如何通过后台传来的key给我们的下拉框赋值呢?

首先要保证后台传过来的是int整型数据,如果不是int的则需要通过parseInt()函数进行转换。

这样我们可以通过
Ext.getCmp('news_shequ').setValue("value");

的形式可以直接实现;


但是,如果后台传过来的是一个字符串,如 1,2,3,4
这样我们就必须将其转化为int数组赋值给我们的combo组件;
var SQ=new Array();//初始化一个数组作为int数组
var shequ = data[0].get('isSq');
    if(shequ.indexOf(",")!=-1){//包含","
    var sqArr = shequ.split(",");
    for(var x=0;x<sqArr.length;x++){
        var shequ = parseInt(sqArr[x]);
        SQ.push(shequ);
    }
}
//赋值
Ext.getCmp('news_shequ').setValue(SQ);





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_wangtao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值