2016-09-19 61 views
0

我有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();

enter image description here

回答

0

我可以通過下面的代碼來實現我的目的。不知道是否有更好的方法來做到這一點。如果是這樣,請告知。

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'); 
 
      } 
 
     } 
 
});