多选 multicombobox 赋值问题

Extjs如何调取多选下拉框 multicombobox 中的返回赋值问题
在使用Ext.js 中遇到的问题
背景
Ext.js 版本是4.2
代码

引用原生的多选代码
Ext.define('MDM.view.custom.MultiComboBox', {
    extend: 'Ext.form.ComboBox',
    alias: 'widget.multicombobox',
    xtype: 'multicombobox',
    initComponent: function () {
        this.multiSelect = true;
        this.listConfig = {
            itemTpl: Ext.create('Ext.XTemplate',
                '<input type=checkbox>{country} {province}{city} {popedom}{company}{department}{team}{person}{name}{type}{text}{typeName}{sizeName}'),//这边value的要改成下拉框显示所对应的displayField字段,例如:values。name
            onItemSelect: function (record) {
                var node = this.getNode(record);
                if (node) {
                    Ext.fly(node).addCls(this.selectedItemCls);
                    var checkboxs = node.getElementsByTagName("input");
                    if (checkboxs != null) {
                        var checkbox = checkboxs[0];
                        checkbox.checked = true;
                    }
                }
            },
            listeners: {
                itemclick: function (view, record, item, index, e, eOpts) {
                    var isSelected = view.isSelected(item);
                    var checkboxs = item.getElementsByTagName("input");
                    if (checkboxs != null) {
                        var checkbox = checkboxs[0];
                        if (!isSelected) {
                            checkbox.checked = true;
                        } else {
                            checkbox.checked = false;
                        }
                    }
                }
            }
        }
        this.callParent();
    },
    selectAll: function () {

    }
});
 {
                                    xtype: 'multicombobox',
                                    multiSelect: true,//支持多选
                                    name: 'allGoods.size',
                                    itemId: 'goodsSizeId',
                                    triggerAction: 'all',
                                    minChars: 1,
                                    fieldLabel: saleLanguage.sale_size,
                                    labelAlign: 'right',
                                    editable: false,
                                    hidden: !public_industrySettingC,
                                    store: {
                                        xtype: 'store',
                                        fields: ['sizeName'],
                                        proxy: {
                                            type: 'ajax',
                                            url: 'goodsSizelist.action',
                                            reader: {
                                                type: 'json',
                                                root: 'array',
                                                totalProperty: 'total'
                                            }
                                        },
                                        autoLoad: true
                                    },
                                    displayField: 'sizeName',
                                    valueField: 'sizeName',
                                },

正常再前端选择的时候是能正常选中的,但是后端获取的值赋值到前端时却无法使多选款选中

combo.setValue(text.sizeName);   这种无法使多选框选中
因为多选框中的选中时是通过一个个选中的形式赋值的,匹配选择同样需要一个个匹配,因此只能使用
combo.setValue(text.sizeName.split(",")); 分割成数组的形式进行赋值就可以多选选中了

好记性不如烂笔头,每天记录一个bug

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值