// 创建两个data.JsonStore对象
var ossVendorStore = new Ext.data.JsonStore({
autoLoad: false,
storeId: 'ossVendors',
fields: ["name", "value"],
reader:{
type:'json'
}
});
var ossRegionStore = new Ext.data.JsonStore({
autoLoad: false,
storeId: 'ossRegions',
fields: ["vendor", "regionList"],
reader:{
type:'json'
}
});
// 读取远程json数据, 远程服务器开启CORS。
Ext.Ajax.request({
url:'http://www.abc.com/json/jsondata.json',
method:'GET',
success:function(response){
var retJson = Ext.decode(response.responseText);
ossVendorStore.loadData(retJson.vendors);
ossRegionStore.loadData(retJson.regions);
},
failure:function(response){
//如果读取失败则尝试读取本地
Ext.Ajax.request({
url:'/json/jsondata.json',
method:'GET',
success:function(response){
var retJson = Ext.decode(response.responseText);
ossVendorStore.loadData(retJson.vendors);
ossRegionStore.loadData(retJson.regions);
},
failure:function(response){
console.log(response);
}
});
}
});
//创建临时dataStore
var ossRegions = new Ext.data.Store({
autoLoad: true,
storeId: "ossRegion",
fields: ['value', 'name']
});
combo部分代码
items: [
{
xtype: "combo",
name: "ossVendor",
fieldLabel: _("Vendor"),
emptyText: _("Please select a OSS cloud vendor"),
displayField: "name",
valueField: "value",
allowBlank: false,
editable: false,
forceSelection: true,
queryMode: "local",
store: ossVendorStore,
listeners: {
scope: me,
change: function (combo, newVal, oldVal) {
var regionCombo = Ext.getCmp("ossRegion");
regionCombo.clearValue();
ossRegionStore.each(function (record) {
if (record.data.vendor == newVal) {
ossRegions.removeAll();
ossRegions.add(record.data.regionList);
}
});
}
}
},
{
xtype: "combo",
name: "ossRegion",
id: "ossRegion",
fieldLabel: _("Region"),
queryMode: "local",
displayField: "name",
valueField: "value",
allowBlank: false,
editable: false,
forceSelection: true,
store: ossRegions
},