Jstree - 通过用户输入(按钮单击)将节点添加到树

时间:2012-09-27 17:01:40

标签: asp.net-mvc json jquery jstree

我有一个使用JsTree的ASP.NET MVC 4.0项目。正在填充JsTree,认为是一个返回JSON的模型。

现在我的问题是,我有一棵巨大的树,让用户体验非常糟糕。我需要的是加载一些项目(我们20),并有一个按钮,当用户点击时,将接下来的20条记录添加到树中。

我一直在Google JsTree文档中搜索,但是我没有找到适合我的示例。

任何人都可以帮助我吗?

先谢谢。

好吧,有些人打破了局面。我有点工作了。在我看来,用户输入调用此函数:

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 retDom = $.jstree._reference("#demoTree")._parse_json(new_data, -1, true);
$("#demoTree").jstree("move_node", retDom, -1, "inside", false, false, true);

}

这工作正常,期望解析json创建一个“ul”而不是“li”如何改变它的任何想法?

2 个答案:

答案 0 :(得分:2)

好的,我终于有了这个工作,这是我的功能的最终版本,我希望这可以帮助某人。

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之后添加一个新孩子。

答案 1 :(得分: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无关。