javascript - 即使存储时,extjs 网格也不会显示预期数据,并且网格对象中存在列

标签 javascript extjs sencha-touch sencha-architect

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

我做错了什么?

提前谢谢您。

GridView :

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

商店:

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: []
});

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

包含动态组合模型和存储的代码的报表 Controller 位于 ReportsControllerhandleSelectQueryResult()

最佳答案

您必须使用网格的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);

关于javascript - 即使存储时,extjs 网格也不会显示预期数据,并且网格对象中存在列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33109534/

相关文章:

javascript - Angularjs - 多次加载相同的图像

javascript - Google Charts 饼图事件

javascript - JavaScript 重定向时 session 丢失

ExtJs 没有在 ComboBox 上触发选择事件

cordova - 在 Android 上的 Phonegap 中访问 Sencha javascript 文件

javascript - 将不可选择的文本选项卡添加到 Ext.TabPanel?

javascript - itemtap 事件不会在所有点击时触发

javascript - 如何对 Bundle 中的 javascript 文件进行版本控制?

javascript - sencha app build production 以纯文本格式生成 910 个 JS 文件

javascript - 仅当单击复选框时才选择行 ExtjS 4