Extjs: Сетка не отображает записи - PullRequest
0 голосов
/ 07 сентября 2018

Возможно, это может быть глупый вопрос, который я снова отправляю, и я новичок в Extjs. Я создал 2 вкладки, которые дополнительно включают сетку в каждой из них. Я могу получить данные и добавить их в соответствующие хранилища, но после щелчка по другому виджету или отмены выбора виджета и повторного выбора того же виджета сетка не отображает никаких данных, даже если хранилище содержит записи. Вот часть кода, в которой я создаю вкладки и включенную в него сетку.

{
        title : '<b>Data Filters</b>',
        defaults : {
            border : false
        },
        items : [ {
            defaults : {
                border : false
            },
            items : [ {
                // xtype : 'combo',
                // fieldLabel : 'Filter Join Type',
                // reference : 'dataFilterJoinType',
                // store : [ 'AND', 'OR' ],
                // hidden : true,
                // defaultAlign : 'r-c',
                // listeners : {
                // select : 'setFilterOnWidget'
                // }
                xtype : 'radiogroup',
                fieldLabel : 'Filter Join Type',
                reference : 'datafilterjointype',
                items : [ {
                    boxLabel : 'AND',
                    name : 'joinType',
                    inputValue : 'AND'
                }, {
                    xtype : 'tbspacer',
                    width : '50px'
                }, {
                    boxLabel : 'OR',
                    name : 'joinType',
                    inputValue : 'OR'
                } ],
                hidden : true,
                // defaultAlign : 'r-c',
                margin : '10 0 10 5',
                listeners : {
                    change : 'updateFilterOnTypeChange'
                }
            } ]
        }, {
            xtype : 'tabpanel',
            deferredRender : true,
            reference : 'datafilterpropertygrid',
            border : false,
            items : [ {
                title : 'Data filters',
                items : [ {
                    xtype : 'datafiltergrid',
                    reference : 'datafiltergrid',
                    deferredRender : true,
                }, {
                    xtype : 'datafilterpropgrid',
                    reference : 'datafilterpropgrid',
                    hidden : false,
                    deferredRender : true,
                } ] 
            },
            { 
                title : 'List filters',
                items : [ {
                    xtype : 'listfiltergrid',
                    reference : 'listfiltergrid',
                    deferredRender : true,
                }, {
                    xtype : 'listfilterpropgrid',
                    reference : 'listfilterpropgrid',
                    hidden : false,
                    deferredRender : true,
                } ]
            } ] , 
        } ]
    }

А вот часть кода, где я заполняю данные в хранилище и отображаю сетку:

setListFiltersOnWidgetSelection : function(widget) {
        var filterJoinType = this.lookupReference('datafilterjointype'), //
        filterGrid = this.lookupReference('listfiltergrid'), //
        filterPropGrid = this.lookupReference('listfilterpropgrid');

        filterJoinType.show();
        filterGrid.show();
        filterPropGrid.hide();
        filterPropGrid.sourceConfig.targetBindingEditor.field.getStore().loadData(
                widget.getDesignMode().visibleBindingStore.getRange());
        filterPropGrid.setDefaultProperties();
        // filterPropGrid.showButtons(false);
        if (widget.listFilter) {
            filterGrid.getStore().loadData(widget.listFilter.filters);
            filterJoinType.suspendEvents();
            filterJoinType.setValue({
                joinType : widget.listFilter.filterJoinType
            });
            filterJoinType.resumeEvents();
        } else {
            filterJoinType.setValue({
                joinType : 'AND'
            });
            filterGrid.resetStore();
        }
        filterGrid.getView().refresh();
        filterGrid.addEmptyRow();
    },

filterGrid - это сетка, в которую я загружаю данные и пытаюсь отобразить.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я выбираю виджет в пользовательском интерфейсе, я вижу записи, но когда я выбираю другой виджет или щелкаю, и я возвращаюсь, я не вижу записи, даже если Сетка отображается с загруженным магазином. Что может быть причиной такого поведения? Буду очень признателен за вашу помощь и большое спасибо заранее.

...