2

JsTree を使用する ASP.NET MVC 4.0 プロジェクトがあります。JsTree は、JSON を返すモデルを考慮して設定されています。

今私の問題はこれです、私はユーザーエクスペリエンスをかなり悪くする巨大なツリーを持っています。私が必要とするのは、いくつかの項目 (20 としましょう) をロードし、ユーザーがクリックすると次の 20 レコードをツリーに追加するボタンを用意することです。

Google JsTree のドキュメントと SO を検索してきましたが、自分に合った例が見つかりませんでした。

誰でも私を助けることができますか?

ありがとうございます。

わかりました、いくつかの休憩がありました。私はこれをうまく機能させました。私の見解では、ユーザー入力はこの関数を呼び出します:

関数 getNextRecords() {

var new_data = { "attr": { "ID": "999999999999", "NodeText": "999999999999" },
    "data": "999999999999",
    "children": [{
        "attr": { "ID": "ACT99", "NodeText": "969994222" },
        "data": "969994222 - PPP",
        "children": [{
            "attr": { "ID": "TRFps800", "rel": "disabled" },
            "data": "Voz com unlimited 800 fidelização até 01/11/2019",
            "state": "open"
        }],
        "state": "open"
    }], "state": "open"
};

var retDom = $.jstree._reference("#demoTree")._parse_json(new_data, -1, true);
$("#demoTree").jstree("move_node", retDom, -1, "inside", false, false, true);

}

これは正常に機能しています。解析 json が「li」ではなく「ul」を作成することを期待してください。それを変更する方法について何かアイデアはありますか?

4

2 に答える 2

2

OK、ようやくこれが機能しました。これが関数の最終バージョンです。これが誰かの役に立てば幸いです。

function getNextRecords() {

var new_data = { "attr": { "ID": "999999999999", "NodeText": "999999999999" },
    "data": "999999999999",
    "children": [{
        "attr": { "ID": "ACT99", "NodeText": "969994222" },
        "data": "969994222 - PPP",
        "children": [{
            "attr": { "ID": "TRFps800", "rel": "disabled" },
            "data": "Voz com unlimited 800 fidelização até 01/11/2019",
            "state": "open"
        }], "state": "open"
    }], "state": "open"
};

    var ref = $("li ul:first")
    var retDom = $.jstree._reference("#demoTree")._parse_json(new_data, ref, true);
      $("#demoTree").jstree("move_node", retDom, ref, "first", false, false, true);

}

これにより、最初の UL の後に新しい子が追加されます。

于 2012-10-10T14:16:06.117 に答える
0
The second part "load part of the branch and with another load of the same branch
load more" is exactly what i'm trying to do but i have not yet succeeded, is it
possible to have an example? 

このようなタスクは、サーバー側で処理する必要があります。取り方はこうです: jsTree は渡されたものだけを表示します。したがって、最初に何をロードするかを決定し、(ツリー全体またはブランチのみをリロードする) ボタンを使用して、さらにロードするか、ロードされたものを置き換えることができます。このロジックは (ほとんど) jsTree とは関係がないことを忘れないでください。

于 2012-10-03T22:57:04.803 に答える