【问题标题】:ExtJS Replace Gridpanel StoreExtJS 替换 Gridpanel 存储
【发布时间】:2011-11-23 17:16:16
【问题描述】:

是否可以远程覆盖/替换 GridPanel 的存储?

我有一个带有虚拟存储的网格,因为如果我不声明为存储,则会出现错误:

this.ds is undefined

当我的表单被提交时,它会进行 GET REST 调用并加载带有结果的 JSON 存储。我希望这家商店成为我的网格商店,并将其显示在 formPanel 下方。 我可以让它显示并返回 JSON,但似乎无法替换商店。

我尝试使用 searchGrid.store = formStore //表单提交返回的JSONStore

编辑 这如果数据存储:

var formStore = new Ext.data.JsonStore({
    proxy: new Ext.data.HttpProxy({
        url: '...',
        method: 'GET'
    }),
    root: 'Report',
    fields:[
            ....]
});

这是商店的加载/更改:

var data = this.getForm().getValues();

        formStore.load({
            params: {
                fields: Ext.encode(data)
            }
        });

        var grid = Ext.getCmp('search');

        Ext.apply(grid, {store: formStore});
        grid.show();

【问题讨论】:

  • 您使用的是哪个版本的 Ext?

标签: json extjs grid store


【解决方案1】:

你试过 Ext.apply() 吗?

来自api

应用(对象对象,对象配置,对象默认值):对象

编辑:

这是你如何使用它:

Ext.apply(myGrid, { store : mystore }); //no need for the third parameter, but if you do want a default, then you can use one

【讨论】:

  • 我试过像 Ext.apply(searchGrid, formStore, store);但它只是返回了网格的原始存储。
  • Ext.apply 在这里可以提供帮助。您的代码片段相当于一个简单的属性分配myGrid.store = mystore。 Ext.apply 是一个相当简单的辅助函数,用途非常有限(例如,分配大量属性并将它们与默认值合并)
  • 这仍然不起作用。我已编辑上述问题以显示我的商店及其加载方式。我不确定这是否是导致问题的原因。
【解决方案2】:
grid.reconfigure(store, colModel);

对我来说很好用。 formStore.data 是否与 Grid 的列配置兼容?如果未更改,则无需在 reconfigure 调用中指定列模型。

显示您的formStore.data 和网格配置的一部分。

【讨论】:

  • 我尝试仅使用指定的商店重新配置它,但它没有显示 e 未定义错误。商店中的列与网格匹配。
【解决方案3】:

根应该在阅读器内部吗?像这样

var formStore = new Ext.data.JsonStore({
    proxy: new Ext.data.HttpProxy({
        url: '...',
        method: 'GET'
    }),
    reader: {
        type: 'json',
        root: 'Report'
    },
    fields:[
            ....]
});

【讨论】:

  • 没什么区别
【解决方案4】:

我设法通过将 jsonStore 移动到网格本身并使其成为单例来解决这个问题。然后使用 StoreMgr 从表单中引用它

【讨论】:

    【解决方案5】:

    试试这个

    myGridPanel.getStore().proxy.setApi({read: url});
    myGridPanel.getStore().load();
    

    当我想从另一个 url 读取数据时,我正在使用此解决方案

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-28
      • 2016-04-11
      相关资源
      最近更新 更多