Javascript Sencha ExtJS 4链接组合框问题
我正在试验ExtJS 4 Combobox AJAX商店中的一个bug 我有一个物品网格,每个物品都有一个供应商和一个类别,每个供应商提供属于某个类别的物品。为了过滤网格,我放置了两个组合选择列表。一个用于供应商,一个用于类别。这些组合通过AJAX从php脚本获取其值 一切都很顺利,直到我尝试像这样链接组合: 当用户从组合框中选择一个类别时,供应商商店将刷新提供该类别的供应商 用户从组合框中选择供应商,类别商店RefreshRefresh很好,如firebug所示 这是我现在的问题,如果用户再次选择category组合框,则加载掩码不会消失,因此无法更改组合的值 我已经测试过了,AJAX工作正常,只是加载掩码的ExtJS4问题 问题的发生有两个方面: A 一,。用户选择一个类别 二,。用户选择一个供应商 三,。用户无法选择类别加载掩码不会消失 及 B 一,。用户选择一个供应商 二,。用户选择一个类别 三,。用户无法选择供应商加载掩码不会消失 编辑: 问题似乎也发生在这些情况下,反之亦然:供应商->类别 一,。用户选择一个类别 二,。用户更改类别 三,。用户无法选择供应商加载掩码不会消失 以下是我的模型:Javascript Sencha ExtJS 4链接组合框问题,javascript,css,ajax,extjs,frameworks,Javascript,Css,Ajax,Extjs,Frameworks,我正在试验ExtJS 4 Combobox AJAX商店中的一个bug 我有一个物品网格,每个物品都有一个供应商和一个类别,每个供应商提供属于某个类别的物品。为了过滤网格,我放置了两个组合选择列表。一个用于供应商,一个用于类别。这些组合通过AJAX从php脚本获取其值 一切都很顺利,直到我尝试像这样链接组合: 当用户从组合框中选择一个类别时,供应商商店将刷新提供该类别的供应商 用户从组合框中选择供应商,类别商店RefreshRefresh很好,如firebug所示 这是我现在的问题,如果用户再次
Ext.define('Category', {
extend: 'Ext.data.Model',
fields: [
{ name: 'name'},
{ name: 'id'}
]
});
Ext.define('Supplier', {
extend: 'Ext.data.Model',
fields: [
{ name: 'name'},
{ name: 'id'}
]
});
以下是我的店铺:
var categoryStore = Ext.create('Ext.data.Store', {
model: 'Category',
autoLoad: true,
remoteSort: true,
proxy: {
type: 'ajax',
url: 'GetCategorysForSupplier',
reader: {
type: 'json',
root: 'items'
},
extraParams: {
supplier: 0
}
}
});
var supplierStore = Ext.create('Ext.data.Store', {
model: 'Supplier',
autoLoad: true,
remoteSort: true,
proxy: {
type: 'ajax',
url: 'getSuppliersForCategory.php',
reader: {
type: 'json',
root: 'items'
},
extraParams: {
category: 0
}
}
});
以下是我的套餐:
var categoryFilterCombo = Ext.create('Ext.form.field.ComboBox', {
xtype: 'combo',
store: categoryStore,
displayField: 'name',
valueField: 'id',
fieldLabel: 'Category Filter',
listeners: {
change: function(field,newVal) {
if (Ext.isNumeric(newVal)) {
supplierStore.proxy.extraParams.category = newVal;
articleStore.proxy.extraParams.category = newVal;
supplierStore.load();
articleStore.load();
}
}
}
});
var supplierFilterCombo = Ext.create('Ext.form.field.ComboBox', {
store: supplierStore,
displayField: 'name',
queryMode: 'local',
valueField: 'id',
fieldLabel: 'Supplier Filter',
listeners: {
change: function(field,newVal) {
if (Ext.isNumeric(newVal)) {
categoryStore.proxy.extraParams.supplier = newVal;
articleStore.proxy.extraParams.supplier = newVal;
categoryStore.load();
articleStore.load();
}
}
}
});
亲切问候,
Dan Cearnau在这里寻找答案: 奥多诺弗里奥说: 这是一个4.0.7错误,似乎在4.1pr中解决了 我的超控 PHP代码:
Ext.override(Ext.LoadMask, {
onHide: function() { this.callParent(); }
});