Kendo树视图HierarchicalDataSource未显示子节点



我有一个kendo树视图,它显示了父节点,但没有显示子节点。有人能告诉我哪里不对吗。我对这个概念是陌生的。我遵循了下面的链接,但它不起作用。http://demos.telerik.com/kendo-ui/treeview/remote-data-binding

 function treeView() {
        var treeM = new kendo.data.HierarchicalDataSource({
            schema: {
                data: function (response) {
                    console.log("response" + JSON.stringify(response));
                    var rdata = {};
                    if (response.d) {
                        rdata = JSON.parse(response.d);
                    }
                    else {
                        rdata = response;
                    }
                    return rdata; // ASMX services return JSON in the following format { "d": <result> }.
                },
                model: {
                    hasChildren: true,
                    id: "ID",
                    expanded: true,
                    fields: {
                        ID: { editable: false, nullable: false, type: "string" },
                        LINK: { editable: true, nullable: true, type: "string" },
                                          },
                },
            },
            transport: {
                read: {
                    url: "/getParent",
                    contentType: "application/json; charset=utf-8",
                    type: "POST",
                    datatype: "json"
                },
                parameterMap: function (data, type) {
                    if ((type == "update") || (type == "create") || (type == "destroy")) {
                        console.log('parameterMap:');
                        return JSON.stringify({ "LinksJson": data });
                        console.log(JSON.stringify(data));
                    } else {
                        return data;
                    }
                }
            }
        });
                 $("#treeview1").kendoTreeView({
            dataSource: treeM,
            dataValueField: "ID",
            dataTextField: ["LINK","Name"]
        });
    }
    $("#treeview").on("click", ".k-in", function (e) {
        var tree = $("#treeview").data('kendoTreeView');
        tree.toggle($(e.target).closest(".k-item"));
    });

    $(document).ready(function () {
        treeView();
    });

服务:

 [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public string getParent()
    {
        using (var context = new Data.Entities())
        {
            IQueryable<ERPv2.Data.Links> dataQuery = from x in context.Links
                                                          where x.ParentID == 68
                                                         select x;
            var newQry = dataQuery.AsEnumerable().Select(c => new
                         {
                             ID = c.ID,
                              Name = c.Name,
                             Children = HasChildren(231)
                         });
            JavaScriptSerializer JSON = new JavaScriptSerializer();
            return JSON.Serialize(newQry);
        }
    }


      [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public bool HasChildren(int ID)
        {
            using (var context = new Data.Entities())
            {
                IQueryable<ERPv2.Data.Links> dataQuery = from x in contextLinks
                                                             where x.ParentID == ID
                                                             select x;
                return dataQuery.AsEnumerable().Any();
            }
        }

即使您尝试查看子节点,它也会尝试调用getLinks,而不是getreports。根据我所看到的,你应该只有一种方法来获得父母和孩子。可以是每个父节点内的一个数组。你能把GetReports方法的数据合并到getlinks本身中并给它一个机会吗。

您应该尝试使用硬编码的值来实现这一点,然后使用服务进行配置。http://docs.telerik.com/kendo-ui/api/javascript/ui/treeview#configuration-dataSource