我需要用复选框组合框在每个选项前,可以选择多个选项。 我试着用CheckedMultiSelect使用“下拉列表:真”,
它示出了在等,选择2项目(S),1项(多个)所选择的组合框等当我选择的项目的值。
如何显示在由分隔符分隔组合框的文本区域选择的价值观
如果CSS或HTML或someotherthing已经改变了checkedMultiSelect?
提前致谢。
我需要用复选框组合框在每个选项前,可以选择多个选项。 我试着用CheckedMultiSelect使用“下拉列表:真”,
它示出了在等,选择2项目(S),1项(多个)所选择的组合框等当我选择的项目的值。
如何显示在由分隔符分隔组合框的文本区域选择的价值观
如果CSS或HTML或someotherthing已经改变了checkedMultiSelect?
提前致谢。
至于你的第二个问题,你必须扩展dojox.form.CheckedMultiSelect
类并覆盖_updateSelection
和startup
方式:
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/
除了@克雷格的解决方案也有一个办法只能通过添加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/
该CheckedMultiSelect
当不提供复选框dropDown
设置为true。 它只是允许用户单击单击多个项目进行选择。
要实现你想要什么,在这里看看我的回答:
通过继承_HasDropdown和_AutoCompleterMixin定制的Dojo下拉窗口小部件
在MyCustomDropDown
,你将需要建立复选框和项目的列表作为自定义窗口小部件。 我建议在看dojox.form._CheckedMultiSelectMenu
和dojox.form._CheckedMultiSelectMenuItem
和模仿的功能有,只是给出了不同的UI(使用复选框)。
dojox.form.CheckedMultiSelect应已呈现的复选框,此票解决了这个问题。 https://bugs.dojotoolkit.org/ticket/17103