0

我有一个treegrid,我只想更新一个节点及其子节点。所以我试过这样:

store.load({
  node: store.getNodeById(1)
});

这会更新子节点,但不会更新节点本身。那么如何更新节点和子节点?如果它只需要对数据库的一个请求,那将是最好的。

4

1 回答 1

0

没有任何方法可以通过配置来做到这一点,它只是作为设计工作。您可以做的是加载节点的子节点后的一个小技巧,以便操纵树节点以手动更新节点本身。

查看图片。他们表现出您期望的行为。

在此处输入图像描述 在此处输入图像描述

这在 jsfiddle 中可以正常工作:http: //jsfiddle.net/lontivero/jBTWn/3/

基本上,正如我刚才所说,这个想法是在加载孩子之后操纵树。在我的示例中,这是通过以下方式完成的:

        var node = store.getNodeById(1);

        store.load({
            node: node,
            callback: function(newRecord) {
                var parent = node.parentNode;
                parent.insertBefore(newRecord[0], node);
                parent.removeChild(node);
            },
            params: {
                json: Ext.JSON.encode(updated_data)
            }
        });

祝你好运!

于 2012-12-21T14:40:52.357 回答