【问题标题】:Update model of a grid store on the fly动态更新网格存储的模型
【发布时间】:2015-04-30 00:31:42
【问题描述】:

一个网格配置了一个商店,该商店使用我可以称之为 modelA 的模型

我需要动态更改与网格相关的商店模型。 我遵循以下方法但没有结果:

grid.getStore().setModel(modelB);

grid.reconfigure(
    grid.getStore(),
    columns
);

grid.getStore().load();

它继续使用开始定义的模型。事实上,如果我调试传递给渲染器函数的记录如下:

function(value, metadata, record)...

record 继续引用 modelA 而不是 modelB。

如何动态更改商店的模型?

【问题讨论】:

    标签: extjs model grid store extjs5


    【解决方案1】:

    我认为尽管您设置了新模型,但您没有重新阅读记录,至少您没有显示任何 store.load() 调用。 store/proxy/reader 使用模型在 store 加载时创建实例。

    现在,无论如何我都不会使用这种方法。存储在性能或内存方面并不是很昂贵,所以如果我需要重新配置网格,我会使用另一个存储与另一个模型。

    【讨论】:

    • 创建一个新商店 我可以添加一个动态创建的新模型。谢谢
    【解决方案2】:

    要完成此任务,您可以动态更改模型的字段,而不是更改模型本身。示例fiddle

      store.model.setFields(fieldsArray);
      store.load();  // or store.load(newData);
      grid.reconfigure(store,columnInfo); 
    

    希望这会有所帮助。

    【讨论】:

    • 我正在使用 5.0.1 版本...我似乎没有模型的“setFields”方法。
    猜你喜欢
    • 2015-03-30
    • 1970-01-01
    • 2018-12-05
    • 2015-12-10
    • 1970-01-01
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多