即时更新网格商店的模型

时间:2015-02-27 10:18:12

标签: extjs model grid store extjs5

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

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

grid.getStore().setModel(modelB);

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

grid.getStore().load();

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

function(value, metadata, record)...

记录继续引用modelA而不是modelB。

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

2 个答案:

答案 0 :(得分:1)

我认为虽然您设置了新模型但您没有重新读取记录,但至少您没有显示任何store.load()调用。商店/代理/阅读器使用模型在加载商店时创建实例。

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

答案 1 :(得分:0)

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

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

希望这有帮助。