更改 dojox CheckedMultiSelect 控件默认标签样式
change dojox CheckedMultiSelect control default label style
我有 dojox/form/CheckedMultiSelect 控制权。当我从下拉列表中检查一些项目时,标签更改为“2 个已选择的项目”。如何将其自定义为“2 State(s) Selected”之类的内容。
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');
}
}
});
我有 dojox/form/CheckedMultiSelect 控制权。当我从下拉列表中检查一些项目时,标签更改为“2 个已选择的项目”。如何将其自定义为“2 State(s) Selected”之类的内容。
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');
}
}
});