1

我创建一个剑道树形如下面写剑道树状扩展不来

@(Html.Kendo().TreeView() 
.Name("treeview") 
.Template("<a class='edit-link' onclick=javascript:EditNode(#= item.id #) href='\\#'>#= item.text #</a> <a class='add-link' onclick=javascript:AddNode(#= item.id #) href='\\#'>Add</a>") 
.HtmlAttributes(new { @class = "demo-section" }) 
.DataSource(source => 
{ 
    source.Read(read => read.Action("Read_TemplateData", "Role")); 
})  
) 

,并在控制器动作我是回像

public ActionResult Read_TemplateData(string id) 
{ 
     IEnumerable<KendoTreeviewModel> result; 
     var AllPrivileges = ContextService.GetAllPrivilege(Evry.Ecompanion.Web.Common.SessionManager.AuthorizedInfo.UserId); 
     if (string.IsNullOrEmpty(id)) 
     { 

      result = AllPrivileges.Where(p => p.Id == p.ParentPrivilegeId).Select(p => new KendoTreeviewModel { text = p.Name, id = p.Id,expanded=false, items = GetChilderns(p.Id) }).ToList(); 
     } 
     else 
     { 
      result = AllPrivileges.Where(p => p.ParentPrivilegeId == Convert.ToInt32(id, CultureInfo.InvariantCulture) && p.Id != Convert.ToInt32(id, CultureInfo.InvariantCulture)).Select(p => new KendoTreeviewModel { text = p.Name, id = p.Id}).ToList(); 
     } 

     return Json(result, JsonRequestBehavior.AllowGet); 
} 
public List<KendoTreeviewModel> GetChilderns(int id) 
{ 
     var AllPrivileges = ContextService.GetAllPrivilege(Evry.Ecompanion.Web.Common.SessionManager.AuthorizedInfo.UserId); 
     return AllPrivileges.Where(p => p.ParentPrivilegeId == Convert.ToInt32(id, CultureInfo.InvariantCulture) && p.Id != Convert.ToInt32(id, CultureInfo.InvariantCulture)).Select(p => new KendoTreeviewModel { text = p.Name, id = p.Id }).ToList(); 
} 

和视图模型就像

public class KendoTreeviewModel 
{ 
    [DataMember] 
    public int id { get; set; } 
    [DataMember] 
    public string text { get; set; } 
    [DataMember] 
    public bool expanded { get; set; } 
    [DataMember] 
    public List<KendoTreeviewModel> items { get; set; } 

} 

在结果父和子列表即将到来,但树视图中的扩展器不会来

输出没有treeview扩展器,只有父节点正在显示。 请有人帮我解决这个问题。

由于提前, Rudresh

回答

1

你不及格标识到控制器

source.Read(read => read.Action("Read_TemplateData", "Role", new{id=#= item.id #}));

你需要hasChildren财产才能得到孩子的记录

KendoTreeviewModel班级添加此属性hasChildren然后

变化

result = AllPrivileges.Where(p => p.Id == p.ParentPrivilegeId).Select(p => new KendoTreeviewModel { text = p.Name, id = p.Id,expanded=false, items = GetChilderns(p.Id) }).ToList(); 

 result = AllPrivileges.Where(p => p.Id == p.ParentPrivilegeId).Select(p => new KendoTreeviewModel { text = p.Name, id = p.Id,expanded=false, items = GetChilderns(p.Id), 
hasChildren = GetChilderns(p.Id).count() > 0}).ToList();