3

从我扩展的 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页面。

4

2 回答 2

2

您可以在调用同步之前尝试在代理上设置额外的参数:

store.proxy.extraParams = { param1 : '', param2 : '' };

有轶事证据表明这在 4.1.3 中有效,但在早期版本中无效。

另一个想法是只触发一个常规的 Ajax.request 并发送所需的参数,而不是使用树存储来执行此操作。

于 2013-04-23T04:26:53.280 回答
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
    }
},
于 2014-05-01T18:59:07.387 回答