Extjs4.2 多选下拉框

时间:2024-07-08 13:35:02
//多选下拉框
Ext.define('MDM.view.custom.MultiComboBox', {
extend: 'Ext.form.ComboBox',
alias: 'widget.multicombobox',
xtype: 'multicombobox',
initComponent: function() {
this.multiSelect = true;
this.listConfig = {
itemTpl: Ext.create('Ext.XTemplate',
'<input type=checkbox>{' + this.displayField + '}'),
onItemSelect: function(record) {
var node = this.getNode(record);
var count = this.getStore().data.length;
if (node) {
Ext.fly(node).addCls(this.selectedItemCls);
var checkboxs = node.getElementsByTagName("input");
if (checkboxs != null) {
var checkbox = checkboxs[0];
checkbox.checked = true;
}
}
},
onItemDeselect: function(record) {
var node = this.getNode(record);
var count = this.getStore().data.length;
if (node) {
Ext.fly(node).removeCls(this.selectedItemCls);
var checkboxs = node.getElementsByTagName("input");
if (checkboxs != null) {
var checkbox = checkboxs[0];
checkbox.checked = false;
}
}
},
listeners: {
itemclick: function(view, record, item, index, e, eOpts) {
var isSelected = view.isSelected(item);
var checkboxs = item.getElementsByTagName("input");
if (checkboxs != null) {
var checkbox = checkboxs[0];
if (!isSelected) {
checkbox.checked = true;
} else {
checkbox.checked = false;
}
}
}
}
}
this.callParent();
}
});