我有一組2個組合框。一個是國家組合,另一個是國家組合。默認情況下,狀態組合商店是空的,當我選擇一個國家,然後基於組合值字段狀態組合必須根據第一個組合進行過濾/加載。在Extjs2.0中,這是在Extjs4中改變的。Extjs4鏈接組合
國儲
var country_store = Ext.create('Ext.data.Store', {
//autoLoad: true,
fields: ['id','c_id','c_name'],
proxy: {
type: 'ajax',
url: 'country_list.php',
reader: {
type:'json',
root: 'results'
}
},
storeId: 'edu_context_store'
});
狀態存儲
var state_name = Ext.create('Ext.data.Store', {
autoLoad: true,
fields: ['id','s_id','s_name','parent_country_id'],
proxy: {
type: 'ajax',
url: 'states_list.php',
reader: {
type:'json',
root: 'results'
}
},
storeId: 'state_name'
});
組合框
{
xtype: 'combo',
id: 'country_combo',
hiddenName: 'country_name',
displayField: 'c_name',
valueField: 'c_id',
fieldLabel: 'Country',
queryMode: 'remote',
allowBlank: false,
triggerAction: 'all',
store: country_store,
width: 450,
selectOnFocus: true,
listeners:{
scope: this,
'select': function(combo, rec, idx){
var country_val = combo.getRawValue();
var states_obj = Ext.getCmp('states_combo');
states_obj.clearValue();
//states_obj.store.load();
states_obj.store.filter('parent_country_id', country_val);
}
}
}, {
xtype: 'combo',
id: 'states_combo',
hiddenName:'state_name',
displayField:'s_name',
valueField:'s_id',
queryMode: 'remote',
fieldLabel: 'State',
cls: 'textlineht',
allowBlank: false,
triggerAction: 'all',
store: states_store,
width: 450
}
任何人知道如何做到這一點?
謝謝!
爲什麼這個註釋掉了? //states_obj.store.load(); – user1163459 2012-02-17 05:29:10
我已經在狀態存儲中定義了autoLoad:true屬性。 – siva565 2012-02-17 08:50:49
^所以當它被渲染時加載一次,然後再多加載 – Mchl 2012-02-17 08:54:33