Extjs 4,如何使用单个 Json 文件为多个动态网格发送多个元数据

Posted

技术标签:

【中文标题】Extjs 4,如何使用单个 Json 文件为多个动态网格发送多个元数据【英文标题】:Extjs 4, How to send multiple metaData for multiple dynamic grids, using a single Json file 【发布时间】:2015-02-19 09:55:05 【问题描述】:

我需要使用手风琴布局在单个面板上创建 8-10 个网格。所有网格都将使用 JSON 中的 metaData 对象和我商店中的 metachange 侦听器事件动态创建,并相应地重新配置我的网格(漂亮的标准流程)。但是有没有办法使用包含多个网格的元数据和数据的单个 JSON 文件。这样我就可以使用多个商店来读取单个 JSON。

这样的东西会很好:

"grid1" : 

"metaData" : ---"root":"data1"-----------
,
"grid2" :

"metaData" : ----"root":"data2"----------
,
"data1" : ------------------,
"data2" :  -----------------

我已经尝试在我的商店中使用 metaProperty 标签,但这种方法似乎对我不起作用(ExtJs 4.1.3)。

商店代理:

proxy: 
    type: 'ajax',
    url: 'MultiData.json',
    reader: 
        type: 'json'
      //  metaProperty : 'grid1', //Doesn't work, hence commented
    

存储监听器:

 'metachange' :function (store, meta)  
        Grid.reconfigure(store, meta.columns); 
    

注意:当我在 JSON 中只有一个元数据和数据标签时,上面的代码可以完美运行

【问题讨论】:

你是如何执行数据加载的? 嗨@mindparse,我已经更新了这个问题。我使用的是常用的方法。并且适用于从 JSON 配置单个网格 【参考方案1】:

这个怎么样:

    使用单个 Ext.Ajax 调用获取您需要的所有数据

    根据需要将数据拆分为多个部分。

    使用 store.loadData() 直接加载到 store。这也应该触发元变化侦听器并相应地配置网格。如果没有,您可以使用网格的 configure() 属性:grid.reconfigure(store,columns)

http://docs.sencha.com/extjs/4.1.3/#!/api/Ext.data.Store-method-loadData http://docs.sencha.com/extjs/4.1.3/#!/api/Ext.grid.Panel-method-reconfigure

【讨论】:

以上是关于Extjs 4,如何使用单个 Json 文件为多个动态网格发送多个元数据的主要内容,如果未能解决你的问题,请参考以下文章

在 ExtJS 4 MVC 中查看单元

如何在 ExtJS 3.4 中添加/合并多个 Ext.data.JsonStore

extjs 3.4.0 - 如何过滤读取 JSON 的存储

如何一次通过名称属性为多个元素设置值(ExtJs 4)

如何在 Extjs 4 中使用嵌套的 JSON 填充表单

将多个 JSON 文件合并为单个 JSON 和 parquet 文件