1

我有一个带有外部 json 文件的 Kendo UI Treeview 作为 html 页面上的分层数据源。

我想从树视图中添加和删除节点,我按照剑道页面上的演示进行操作,但我得到了一个

TypeError: c.replace is not a functionjquery.min.js:2Web 控制台上打开以进行删除

和一个

HierarchyRequestError: Node cannot be inserted at the specified point in the hierarchyjquery.min.js:2Web 控制台上为追加..

我的代码是:

$(document).ready(function() {
            $.getJSON("OnTheSpotDATA/" + parent.accountID + "/" + parent.username + "/" + "tree.json", function (data) {
                var treeview = $("#treeview").kendoTreeView({
                    dragAndDrop: true,
                    dataSource: kendo.observableHierarchy(data)
                });
                $(".k-treeview").data("kendoTreeView").bind("dragstart", function(e) {
                    if (e.sourceNode.childNodes.length > 1) {
                        e.preventDefault();
                    }
                });
                $("#removeNode").click(function() {
                    var selectedNode = treeview.select();

                    treeview.remove(selectedNode);
                });
                $("#appendNodeToSelected").click(function() {
                    var selectedNode = treeview.select();

                    if (selectedNode.length == 0) {
                        selectedNode = null;
                    }

                    var nodeText=prompt("Please enter desired Node name","Default");

                    if (nodeText == null) {
                        return;
                    }

                    treeview.append({
                        text: nodeText
                    }, selectedNode);
                });
            })

我究竟做错了什么?有什么办法可以解决这个问题吗?我想它应该可以正常工作..

4

1 回答 1

3

你忘了包括data("kendoTreeView")treeview.select()它应该是:treeview.data("kendoTreeView").select()

还有一个减少代码(样式)的问题。我更喜欢定义已经包括data("kendoTreeView")事件的树视图。就像是:

var treeview = $("#treeview").kendoTreeView({
    dragAndDrop:true,
    dataSource :kendo.observableHierarchy(data),
    dragstart  :function (e) {
        if (e.sourceNode.childNodes.length > 1) {
            e.preventDefault();
        }
    }
}).data("kendoTreeView");
于 2012-11-13T22:02:55.047 回答