0

ツリーグリッドがあり、1 つのノードだけをその子ノードで更新したいと考えています。だから私はこのように試しました:

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

それは子を更新しますが、ノード自体は更新しません。では、どのようにノードと子を更新できますか? データベースへのリクエストが 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 に答える