Extjs4 Combobox 聯動始終出現loading錯誤的解決辦法,extjs4combobox

來源:互聯網
上載者:User

Extjs4 Combobox 聯動始終出現loading錯誤的解決辦法,extjs4combobox

當重複選者combobox 聯動時,下級的Combobox 會出現loading的錯誤表現形式,雖然Store資料已載入完也是一樣。

廢話少說貼代碼就知道如何處理了:(注意紅色部分的關鍵語句)


            }, {        
                xtype:'combobox',
                labelStyle:'color:blue;',
                labelWidth : 70,//標籤寬度
                width : 200,//欄位寬度
                msgTarget: 'side',
                allowBlank: false,    //是否允許空值
                labelStyle:'color:red;',
                value: '',
                emptyText: '請選擇上層業務。。。。',
                queryMode: 'local',
                displayField: 'DeptName',
                valueField: 'DeptName',
                store:myUpDeptStore,
                editable: false,
                triggerAction:'all',
                fieldLabel: "上層業務",
                listeners:{
                         'select': function(combo,record,number){  //// 該事件會返回選中的項對應在 store中的 record值. index參數是排列號.
                             var _value = combo.getValue();
                             Ext.getCmp('AddDeptCombo').clearValue();
                             Ext.getCmp('AddDeptCombo').store.load({ params: {
                                                UpDept:_value   //record[0].data.DeptName
                                            }
                                        });
                         }
                },
                name: "UpDept"
            }, {        
                xtype:'combobox',
                id:'AddDeptCombo',
                   defaultListConfig:{              //取消loading的Mask
                     loadMask: false
                   },
                   labelStyle:'color:blue;',
                labelWidth : 70,//標籤寬度
                width : 200,//欄位寬度
                msgTarget: 'side',
                allowBlank: false,    //是否允許空值
                labelStyle:'color:red;',
                value: '',
                emptyText: '請選擇部門/班組。。。。',
                queryMode: 'local',
                displayField: 'DeptName',
                valueField: 'DeptName',
                store:myDeptStore,
                editable: false,
                fieldLabel: "部門",
                name: "Dept"
            }]


備忘:這個錯誤應該是Extjs的Bug吧,資料已載入了但沒有取消掉Mask層,所以我們只能手工去除了。


extjs40 ComboBox 組合框級聯問題第一個ComboBox 選擇省份後,要第二個ComboBox 出現該省的城市

代碼風格很不一樣呢,我之前做的時候也遇到過這種問題,放佛是因為載入combobox和載入資料的先後問題造成的

解決的方法是,先載入combox,再載入資料,代碼如下
Ext.onReady(function() {
//省份
new Ext.form.ComboBox({
id: 'SF',
//省份的資料自動載入
store: Ext.create('Ext.data.Store', {fields: ['name']}),
displayField: 'name',
valueField: 'name',
listeners:{
'blur': askCity
}
});
});

function askCity(){
Ext.Ajax.request({
url: 'xxx.jsp',
params: {
sf: Ext.get('SF').getValue()
},
success: function(response){
//這裡不需要removeall了,因為回來的資料只會是該省份下的城市
var respText = Ext.decode(response.responseText);
Ext.get('cs').store.loadData(respText);
},
failure: function(response){
Ext.Msg.alert('意外', '請求資料時發生意外,請重新整理頁面');
}
});
}

//城市的combo第一次運行不載入資料,或者填個blankText: '請選擇省份',
 
ExtJs 裡 兩個combobox 聯動 選擇完 第一個 第二個綁定相應資料 怎做 要例子

Ext.onReady(function() {
Ext.QuickTips.init();
var provinces = [[1, '北京'], [2, '上海']];
var cities = new Array();
cities[1] = [[11, '海澱'], [22, '東城']];
cities[2] = [[33, '黃埔'], [44, '浦東'], [55, '靜安']];
var comboProvinces = new Ext.form.ComboBox({
store : new Ext.data.SimpleStore({
fields : ["provinceId", "provinceName"],
data : provinces
}),
listeners : {
select : function(combo, record, index) {
comboCities.clearValue();
comboCities.store
.loadData(cities[record.data.provinceId]);
}
},
valueField : "provinceId",
displayField : "provinceName",
mode : 'local',
forceSelection : true,
blankText : '請選擇省份',
emptyText : '請選擇省份',
hiddenName : 'provinceId',
editable : false,
triggerAction : 'all',
allowBlank : true,
fieldLabel : '請選擇省份',
name : 'provinceId',
width : 80
});
var comboCities = new Ext.form.ComboBox({
store : new Ext.data.SimpleStore({
fields : ["cityId", 'cityName'],
data : []
}),
valueField : "cityId",
displayField : "cityName",
mode : 'local',
forceSelection : true,
blankText : '選擇地區',
emptyText : '選擇地區',
hiddenName : 'cityId',
editable : false,
triggerAction : 'all&......餘下全文>>
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.