MultiSelectCombobox问题道场(MultiSelectCombobox issue

2019-06-24 11:24发布

我需要用复选框组合框在每个选项前,可以选择多个选项。 我试着用CheckedMultiSelect使用“下拉列表:真”,

它示出了在等,选择2项目(S),1项(多个)所选择的组合框等当我选择的项目的值。

如何显示在由分隔符分隔组合框的文本区域选择的价值观

如果CSS或HTML或someotherthing已经改变了checkedMultiSelect?

提前致谢。

Answer 1:

至于你的第二个问题,你必须扩展dojox.form.CheckedMultiSelect类并覆盖_updateSelectionstartup方式:

var MyCheckedMultiSelect = declare(CheckedMultiSelect, {

    startup: function() {
        this.inherited(arguments);  
        setTimeout(lang.hitch(this, function() {
            this.dropDownButton.set("label", this.label);            
        }));
    },

    _updateSelection: function() {
        this.inherited(arguments);                
        if(this.dropDown && this.dropDownButton) {
            var label = "";
            array.forEach(this.options, function(option) {
                if(option.selected) {
                    label += (label.length ? ", " : "") + option.label;
                }
            });

            this.dropDownButton.set("label", label.length ? label : this.label);
        }
    }

});

使用MyCheckedMultiSelect代替dojox.form.CheckedMultiSelect

var checkedMultiSelect = new MyCheckedMultiSelect ({
    dropDown: true,
    multiple: true,
    label: "Select something...",
    store: dataStore
}, "placeholder");

checkedMultiSelect.startup();

同样,我已将此添加的jsfiddle: http://jsfiddle.net/phusick/894af/



Answer 2:

除了@克雷格的解决方案也有一个办法只能通过添加CSS复选框的外观和感觉。 如果你检查生成的HTML,你可以看到,每行被表示为表中的行<tr>与几个表格单元格<td> 所选项目的表行获取CSS类.dojoxCheckedMultiSelectMenuItemChecked ,所以我建议改变总是具有一流的第一个单元格的造型.dijitMenuItemIconCell

td.dijitMenuItemIconCell {
    width: 16px;
    background-position: center center;
    background-repeat: no-repeat;
    background-image: url('some-unchecked-image-here.png');
}

tr.dojoxCheckedMultiSelectMenuItemChecked td.dijitMenuItemIconCell {
    background-image: url('some-checked-image-here.png');
}

所以,你会得到:

我已将此添加的jsfiddle我之前帮您: http://jsfiddle.net/phusick/894af/



Answer 3:

CheckedMultiSelect当不提供复选框dropDown设置为true。 它只是允许用户单击单击多个项目进行选择。

要实现你想要什么,在这里看看我的回答:

通过继承_HasDropdown和_AutoCompleterMixin定制的Dojo下拉窗口小部件

MyCustomDropDown ,你将需要建立复选框和项目的列表作为自定义窗口小部件。 我建议在看dojox.form._CheckedMultiSelectMenudojox.form._CheckedMultiSelectMenuItem和模仿的功能有,只是给出了不同的UI(使用复选框)。



Answer 4:

dojox.form.CheckedMultiSelect应已呈现的复选框,此票解决了这个问题。 https://bugs.dojotoolkit.org/ticket/17103



文章来源: MultiSelectCombobox issue in dojo