目的是这样的:每次下拉框值的改变,就会改变store中的内容,从而改动页面的显示内容。
做到了第一步,但是问题是点第二个重新加载后去点之前的第一个,事件就没反应了。下拉框的监听事件感觉像是一次性用品?
代码:
var menuTreeStore = Ext.create('Ext.data.TreeStore', {
autoLoad : true,
proxy : {
type : 'ajax',
url : appBaseUri + '/sys/authority/getAuthority?globalRoleId=' + globalRoleId ,
reader : {
type : 'json',
root : 'children'
}
}
});
下拉框的值和下拉框 var projects = Ext.create('Ext.data.JsonStore', {
proxy : {
type : 'ajax',
url : appBaseUri + '/sys/project/getAll',
reader : {
type : 'json',
root : 'list',
idProperty : 'ItemValue'
}
},
fields : [ 'projectName', 'ItemValue' ]
});
// Create the combo box, attached to the states data store
var combo = Ext.create('Ext.form.ComboBox', {
id:'project',
fieldLabel: '项目选择',
xtype: 'textfield',
store: projects,
name:'projectName',
queryMode: 'remote',
displayField: 'projectName',
valueField : 'ItemValue',
typeAhead : true,
value: firstProject,
editable : false,
renderTo: Ext.getBody(),
listeners : {
select : function(combo, record, index) {
console.log("change");
menuTreeStore.proxy= new Ext.data.HttpProxy({url: appBaseUri + '/sys/authority/getAuthority?globalRoleId=' + globalRoleId+'&projectName='+combo.getRawValue()});
menuTreeStore.load();
}
}
});: