我想在Extjs中实现动态网格。我找到了这个How do you create table columns and fields from json? (Dynamic Grid),接受的答案看起来不错。 在我的情况下,我没有代理商店,但代理模型:
fields: [ {name: 'id', type: 'int', persist: false},
{name: 'gender', type: 'auto'},
{name: 'name', type: 'auto'},
{name: 'age', type: 'int'}],
identifier: 'sequential', // to generate -1, -2 etc on the client
proxy: {
type: 'rest',
idParam: "id",
url:'http://localhost:3000/posts',
api:
{
read : 'http://localhost:3000/db',
create: 'http://localhost:3000/posts',
update : 'http://localhost:3000/posts' ,
destroy : 'http://localhost:3000/posts'
},
headers: {'Content-Type': "application/json" },
reader: {
type: 'json',
rootProperty:'posts',
totalProperty: 'total'
},
writer: {
type: 'json'
}
我的商店看起来像是:
model: 'ThemeApp.model.peopleModel',
storeId: 'peopleStore',
pageSize: 500,
autoLoad: true,
autoSync: true,
pageSize: 5,
autoLoad: {start: 0, limit: 5},
autoSync: true,
sorters: [{
property : 'age',
direction:'ASC'
}],
groupField: 'gender'
});
在我看来我已经定义了列:[]但是我不知道在哪里调用metachange函数。
任何人都可以告诉我在哪里使用metachange函数,我应该使用商店或代理的metachange函数吗?
答案 0 :(得分:1)
通常,您不希望在模型上配置代理,这仅在您希望使用没有存储的独立模型实例时才有用。
将代理配置移动到Store,并使服务器使用其他元数据对象响应读取请求,然后您可以在metachange
事件处理程序中使用该对象来配置网格。
使用Reader元数据 是执行“动态”网格的正确方法。