更改dojox CheckedMultiSelect控件的默认标签样式
问题描述:
我有dojox/form/CheckedMultiSelect控件。当我检查下拉菜单中的一些项目时,标签将变为“2选定项目”。如何将它定制为'2 State(s)Selected'之类的东西。更改dojox CheckedMultiSelect控件的默认标签样式
var stateCheckedMultiSelect = new CheckedMultiSelect ({
id: 'stateChkMultiSelect',
dropDown: true,
multiple: true,
onChange: lang.hitch(this, function(result){
stateChecked = result;
})
});
stateCheckedMultiSelect.set('style', {width: '100%', height: '30px', fontSize: '14px'});
stateCheckedMultiSelect.addOption({'label': 'Texas', 'value': 'TX'});
stateCheckedMultiSelect.addOption({'label': 'New York', 'value': 'NY'});
stateCheckedMultiSelect.startup();
答
我可以通过下面的代码来实现我的目的。不知道是否有更好的方法来做到这一点。如果是这样,请告知。
var StateCheckedMultiSelect = 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 labels = [];
array.forEach(this.options, function(option){
if(option.selected){
labels.push(option.label);
}
});
this.dropDownButton.set("label", labels.length + 'state(s) selected');
}
}
});