尝试添加到根父节点时,KendoUI 未定义节点问题

KendoUI undefined Node issue when trying to add to root parent node

我看到其他问题也有同样的问题,大多数时候数据似乎是问题所在。

我确实创建了一个 jsfiddle http://jsfiddle.net/gwvoqns8/

(始终记住必须使用 http,而不是 https)

应该可以说明问题

  1. 我希望将输入到文本框中的任何内容显示为任何名称的另一个命名节点...
  2. 我使用的代码似乎强制我选择一个现有的父节点,但我不希望这样。

有点烦人为什么说"undefined"

$("#addTopLevel").click(function () {
    console.log('in this');
    if (treeview.select().length) {
        console.log('1');
        treeview.append({
            text: $("#appendNodeText").val()
        }, treeview.select());
    } else {
        //alert("please select tree node");
        console.log('2');
    }
});

试试这个:

var ds = new kendo.data.HierarchicalDataSource({
    data: [
        {"Id":1,"ReportGroupName":"Standard Reports","ReportGroupNameResID":null,"SortOrder":1},
        {"Id":2,"ReportGroupName":"Custom Reports","ReportGroupNameResID":null,"SortOrder":2},
        {"Id":3,"ReportGroupName":"Retail Reports","ReportGroupNameResID":null,"SortOrder":3},
        {"Id":4,"ReportGroupName":"Admin Reports","ReportGroupNameResID":null,"SortOrder":5},
        {"Id":5,"ReportGroupName":"QA Reports","ReportGroupNameResID":null,"SortOrder":4}
    ]
});


var treeview = $("#treeview").kendoTreeView({
    dataSource: ds,
    dataTextField: "ReportGroupName",
    loadOnDemand: false
}).data("kendoTreeView");

treeview.expand(".k-item");

$("#addTopLevel").click(function(e) {
    var selectedNode = treeview.select();

    // passing a falsy value as the second append() parameter
    // will append the new node to the root group
    if (selectedNode.length == 0) {
        selectedNode = null;
    }

    treeview.append({
        ReportGroupName: $("#appendNodeText").val()
    }, selectedNode);
});

我注意到你可以这样做

treeview.append({
    ReportGroupName: $("#appendNodeText").val()
}, null);

但是,OP 的答案会更好,因为这样您就可以根据需要添加到子节点,即使您说您不想这样做。

干杯