extjs网格不显示预期的数据,即使存储,列存在于网格对象

extjs Grid is not showing expected data even when store, and colums are present in grid object

本文关键字:网格 存在 于网格 对象 存储 显示 extjs 数据      更新时间:2023-09-26

我是extjs的新手,我在将json数据加载到网格时遇到了一些麻烦。在调试器中,我可以看到网格的存储和列正以我想要的方式准确地填充。但是数据没有显示在网格中。我不知道为什么。但是我的网格没有加载数据。

我做错了什么?

提前谢谢你。

网格视图:

Ext.define('searchadmin.view.reports.DynamicGrid' ,{
    extend: 'Ext.grid.Panel',
    alias : 'widget.dynamicGrid',
    title : 'Results',
    columns: [],
    columnLines : true,
    sortableColumns : false,
    autoScroll : true,
    viewConfig : {
        stripeRows : false,
        loadMask:true       
    }
});    

store:

Ext.define('searchadmin.store.DynamicGridStore', {
    extend : 'Ext.data.Store',
    model: 'searchadmin.model.DynamicGridModel',
    proxy: {
        type: 'memory',
        reader: {
            type: 'json',
            root: 'data'
        }
    }
});

模型:

Ext.define('searchadmin.model.DynamicGridModel', {
    extend: 'Ext.data.Model',
    fields: []
});

上述网格所在页面的视图配置如下:Reports.js

包含动态组合模型和存储的代码的Reports控制器位于:ReportsController

中的handleSelectQueryResult()中。

您将不得不使用reconfigure网格方法,而不仅仅是在ReportsController.jshandleSelectQueryResult函数中分配列和存储。

 grid.columns = _columns; //will not work
 grid.store = queryStore; //will not work

还要注意ComponentQuery.query返回一个数组。

试试这样。

var grid = Ext.ComponentQuery.query('#dynamicGridId')[0]; //or var grid = Ext.getCmp('dynamicGridId');
grid.reconfigure(queryStore, _columns);