Javascript Sencha ExtJS 4链接组合框问题

Javascript Sencha ExtJS 4链接组合框问题,javascript,css,ajax,extjs,frameworks,Javascript,Css,Ajax,Extjs,Frameworks,我正在试验ExtJS 4 Combobox AJAX商店中的一个bug 我有一个物品网格,每个物品都有一个供应商和一个类别,每个供应商提供属于某个类别的物品。为了过滤网格,我放置了两个组合选择列表。一个用于供应商,一个用于类别。这些组合通过AJAX从php脚本获取其值 一切都很顺利,直到我尝试像这样链接组合: 当用户从组合框中选择一个类别时,供应商商店将刷新提供该类别的供应商 用户从组合框中选择供应商,类别商店RefreshRefresh很好,如firebug所示 这是我现在的问题,如果用户再次

我正在试验ExtJS 4 Combobox AJAX商店中的一个bug

我有一个物品网格,每个物品都有一个供应商和一个类别,每个供应商提供属于某个类别的物品。为了过滤网格,我放置了两个组合选择列表。一个用于供应商,一个用于类别。这些组合通过AJAX从php脚本获取其值

一切都很顺利,直到我尝试像这样链接组合:

当用户从组合框中选择一个类别时,供应商商店将刷新提供该类别的供应商

用户从组合框中选择供应商,类别商店RefreshRefresh很好,如firebug所示

这是我现在的问题,如果用户再次选择category组合框,则加载掩码不会消失,因此无法更改组合的值

我已经测试过了,AJAX工作正常,只是加载掩码的ExtJS4问题

问题的发生有两个方面:

A

一,。用户选择一个类别

二,。用户选择一个供应商

三,。用户无法选择类别加载掩码不会消失

B

一,。用户选择一个供应商

二,。用户选择一个类别

三,。用户无法选择供应商加载掩码不会消失

编辑:

问题似乎也发生在这些情况下,反之亦然:供应商->类别

一,。用户选择一个类别

二,。用户更改类别

三,。用户无法选择供应商加载掩码不会消失

以下是我的模型:

    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(); }
});