动态更新网格存储模型
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);
希望对您有所帮助。
网格配置了一个商店,该商店使用我可以称为 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);
希望对您有所帮助。