从我的扩展Ext.data.TreeStore:
proxy: {
type: 'ajax',
api: {
read: "/GetTree.json",
update: "/SetTree.aspx?username=user1"
},
reader: {
type: 'json',
root: 'children'
},
listeners: {
exception: function (proxy, response, options) {
// error case
console.log('Exception in Portlets store proxy...');
console.log(response);
}
}
},
我想弄清楚的是如何使username=user1
动态化,以便我可以传入user2
并使用该用户数据进行aspx页面处理。
我无法弄清楚TreeStore.sync()
是否允许将参数传递给它。
我在此之后真正能够将整个树结构保存为JSON字符串,而不仅仅是更新的记录。我可以构建我需要传递的JSON字符串,但无法弄清楚如何将这些信息实际传递到我的SetTree.aspx
页面。
答案 0 :(得分:2)
您可以在调用sync:
之前尝试在代理上设置额外的参数store.proxy.extraParams = { param1 : '', param2 : '' };
有传闻证据表明这适用于4.1.3但不适用于早期版本。
另一个想法是只触发一个常规的Ajax.request并发送所需的参数而不是使用树存储来执行此操作。
答案 1 :(得分:2)
我知道这已经过时了,但像我这样的人正在寻找同样的问题......
如果要保存整个结构而不是仅修改修改的行,则需要在商店代理中定义writer
,并在该编写器中设置writeAllFields: false
:
proxy: {
type: 'ajax',
api: {
read: "/GetTree.json",
update: "/SetTree.aspx?username=user1"
},
reader: {
type: 'json',
root: 'children'
},
listeners: {
exception: function (proxy, response, options) {
// error case
console.log('Exception in Portlets store proxy...');
console.log(response);
}
},
writer: {
type: 'json',
writeAllFields: true
}
},