Ext.define('Ext.ux.ComboBoxTree', {
extend: 'Ext.form.field.Picker',
requires: ['Ext.tree.Panel'],
alias: ['widget.comboboxtree'],
multiSelect: false,
multiCascade: true,
rootVisible: false,
displayField: 'text',
emptyText: '',
submitValue: '',
url: '',
pathValue: '',
defaultValue: null,
pathArray: [],
selectNodeModel: 'all',
maxHeight: 400,
setValue: function (value) {
if (value) {//注意:此处的判断会使id为0的值选中失效
if (typeof value == 'number') {
this.defaultValue = value;
}
this.callParent(arguments);
}
},
initComponent: function () {
var self = this;
self.selectNodeModel = Ext.isEmpty(self.selectNodeModel) ? 'all' : self.selectNodeModel;
Ext.apply(self, {
fieldLabel: self.fieldLabel,
labelWidth: self.labelWidth
});
self.store = Ext.create('Ext.data.TreeStore', {
root: { expanded: true },
proxy: { type: 'ajax', url: self.url },
autoLoad: true
});
self.store.addListener('load', function (st, rds, opts) {
if (self.defaultValue) {
var defaultRecord = self.store.getNodeById(self.defaultValue);
self.setDefaultValue(defaultRecord.get('id'), defaultRecord.get(