2016-03-23 54 views
0

我有一个kendo Treeview,它显示父节点但没有看到子节点。谁能告诉我我哪里错了。我对这个概念很陌生。我跟着下面的链接,但它不工作。 http://demos.telerik.com/kendo-ui/treeview/remote-data-bindingKendo treeview HierarchicalDataSource不显示子节点

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

回答

0

即使当你试图查看子节点,它会尝试打电话getLinks而不是getreports。 从我所看到的,你应该只有一种获取父母和孩子的方法。可以是每个父节点内的数组。 你可以将GetReports方法中的数据结合getlinks自身并给它一个镜头。

+0

感谢您的建议我一直在尝试你从1天说,但不知何故我无法写出查询。我已经添加了LINQ查询可以请检查它并建议我并更新代码 – Nethra

相关问题