动态更新网格存储模型

Update model of a grid store on the fly

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

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

grid.getStore().setModel(modelB);

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

grid.getStore().load();

继续沿用开头定义的模型。事实上,如果我按如下方式调试传递给渲染器函数的记录:

function(value, metadata, record)...

记录继续引用模型 A 而不是模型 B。

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

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

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

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

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

希望对您有所帮助。