kendo treeview在子节点中获得无限循环

时间:2014-09-23 02:33:38

标签: jquery asp.net-mvc asp.net-mvc-3 kendo-treeview

所以我的剑道树视图有问题。我得到了正确的父节点,但在子节点上它有另一个级别与无限的子节点相同。我试图设置' hasChildren = false'在我的子节点但它不工作。希望你能帮我解决这个问题。

这是我的代码:

HTML:

<div id="treeview1"></div>

脚本:

  var Customer = new kendo.data.HierarchicalDataSource({
        transport: {
            read: {
                url: '/Position/LoadGetCompanyList',
                dataType: "json"
            }
        },
        schema: {
            model: {
                id: "ID",
                hasChildren: true,
            children: Positions
            }
        }



    });

    var Positions = {
        transport: {
            read: {
                url:'/Position/LoadIndustriesPositionList',
                dataType: "json"
            }
        },
        schema: {
        model: {
            id: "ID",
            hasChildren: false

        }
    }

};
$("#treeview1").kendoTreeView({
    dataTextField: ["CompanyName", "JobName"],
    // dataValueField: "Client_CustomerID",
    //            select: function (e) {
    //                console.log("Selecting ", e.node)
    //            },
    dataSource: Customer
}).data("kendoTreeView");

在这里附上我的参考链接: http://rameshrajappan.wordpress.com/kendo-treeview-with-asp-net-mvc/ http://demos.telerik.com/kendo-ui/treeview/remote-data-binding

感谢。

1 个答案:

答案 0 :(得分:0)

您需要以正确的顺序定义变量(Child first,然后是Parent)。 Positions变量应该在Customer之前,因为Customer将Positions作为其子项。

Kendo Tree View的一个奇怪的行为是,如果顺序不正确,Kendo Tree视图会在无限循环中显示子节点。

更正的代码应如下所示

var Positions = {
    transport: {
        read: {
            url:'/Position/LoadIndustriesPositionList',
            dataType: "json"
        }
    },
    schema: {
    model: {
        id: "ID",
        hasChildren: false

    }
}

};

  var Customer = new kendo.data.HierarchicalDataSource({
    transport: {
        read: {
            url: '/Position/LoadGetCompanyList',
            dataType: "json"
        }
    },
    schema: {
        model: {
            id: "ID",
            hasChildren: true,
        children: Positions
        }
    }



});


$("#treeview1").kendoTreeView({
dataTextField: ["CompanyName", "JobName"],
// dataValueField: "Client_CustomerID",
//            select: function (e) {
//                console.log("Selecting ", e.node)
//            },
dataSource: Customer
 }).data("kendoTreeView");