1

プロジェクトでjQuery EasyUI ツリーグリッドを使用しています。

初期データがロードされたツリーがあります。その後、ユーザーが「追加」ボタンをクリックしたときに、ツリーに新しい行を挿入する必要があります。追加クリック ハンドラーには次のコードがあり、期待どおりに動作しています。

var row = $treeGrid.treegrid('getSelected');

if (row) {
    var obj = {
        id: "x" + ++maxId,
        code: "x" + maxId,
        amount: 2
    };
    $treeGrid.treegrid('insert', {
            after: row.id,
            data: obj
        });

    $("#txtResult").text("Added a new row: " + obj.id);
}

ただし、その後、行の子 (新しい子が追加された場所) を確認すると、新しく追加された行は含まれません。

問題を示すためにjsFiddleをセットアップしました。それを再現するには:

  1. 2 番目のレベルで行を選択し、[子を追加] をクリックします。上記のコードに従って、新しい行が追加されます。ボタンの下に「行が追加されました」というメッセージが表示されます。

  2. 親を選択し、「子を表示」ボタンをクリックします。選択した行の子の数がボタンの下に表示されます。

行を挿入した後、treegrid の「acceptChanges」も試しましたが、それでも問題は解決しません。

UPDATE : @saigitha-vijay の回答によると、append メソッドを使用すると基になるモデル ( jsFiddle ) が正しく更新されるように見えますが、常に新しい行が最後の子として追加されます。特定の位置に新しい行を追加する方法はありますか?

4

1 に答える 1