目的是這樣的:每次下拉框值的改變,就會改變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();
}
}
});:
執行你的log了沒有?可能是葷菜導致的,加個時間戳試試
menuTreeStore.proxy= new Ext.data.HttpProxy({url: appBaseUri + '/sys/authority/getAuthority?globalRoleId=' + globalRoleId+'&projectName='+combo.getRawValue()+'&_dc='+new Date().getTime()});