【问题标题】:Kendo UI Treeview Add/Remove NodesKendo UI Treeview 添加/删除节点
【发布时间】:2012-11-13 12:29:09
【问题描述】:

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

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

TypeError: c.replace is not a function on jquery.min.js:2 在 Web 控制台上用于删除

还有一个

HierarchyRequestError: Node cannot be inserted at the specified point in the hierarchy on jquery.min.js:2 在 Web 控制台上用于追加..

我的代码是:

$(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);
                });
            })

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

【问题讨论】:

    标签: treeview append kendo-ui removechild


    【解决方案1】:

    您忘记在treeview.select() 中包含data("kendoTreeView"),它应该是: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");
    

    【讨论】:

    • 确实包含事件更好,更具可读性,我会尽量听从你的建议。Thx
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    相关资源
    最近更新 更多