EXTJS4兩個ComboBox的數據源聯動,解決遇到第二個ComboBox第二次以後顯示忙的狀態問題

定義如下【紅色部分是後加上的,它是解決問題的關鍵】:

var bu_store = Ext.create('Ext.data.Store', {
fields: ['key', 'value'],
remoteSort: true, //是否在服務端排序
proxy: {
type: 'ajax', //異步獲取數據,這裡的URL可以改為任何動態頁面,隻要返回JSON數據即可
url: 'soc/GetBU',
reader: {
root: 'items'
},

simpleSortMode: true
}
});
var evt_bu = new Ext.form.ComboBox({
id: 'evt_bu',
fieldLabel: 'BU',
width: 240,
store: bu_store,
displayField: 'value',
valueField: 'key',
triggerAction: 'all',
emptyText: '請選擇…',
allowBlank: false,
blankText: '請選擇BU',
editable: false,
mode: 'local', //該屬性和以下方法為瞭兼容ie8
listeners: {
'render': function () {
bu_store.load();
}
}
});

var pdl_store = Ext.create('Ext.data.Store', {
fields: ['key', 'value'],
remoteSort: true, //是否在服務端排序
autoLoad: false,
proxy: {
type: 'ajax', //異步獲取數據,這裡的URL可以改為任何動態頁面,隻要返回JSON數據即可
url: 'soc/GetPDL',
reader: {
root: 'items'
},

simpleSortMode: true
}
});

 

pdl_store.on("beforeload", function () {
Ext.apply(pdl_store.proxy.extraParams, {'bu': evt_bu.getValue()});
});

var evt_pdl = new Ext.form.ComboBox({
fieldLabel: '      產品線',
width: 240,
store: pdl_store,
listConfig: {loadMask: false},
displayField: 'value',
valueField: 'key',
triggerAction: 'all',
emptyText: '請選擇…',
allowBlank: false,
blankText: '請選擇產品線',
editable: false
});

//聯動的實現
evt_bu.on('select', function () {
evt_pdl.clearValue();
try{
pdl_store.load();
}
catch(ex){
Ext.MessageBox.alert("錯誤","數據加載失敗。");
}
});

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *