【问题标题】:Kendo treeview expander not coming剑道树视图扩展器没有来
【发布时间】:2013-10-16 12:19:15
【问题描述】:

我正在创建一个如下所示的剑道树视图

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

}

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

输出没有树视图扩展器,只显示父节点。 请任何人帮助我解决问题。

提前致谢, 鲁德雷什

【问题讨论】:

    标签: asp.net-mvc telerik kendo-ui kendo-asp.net-mvc kendo-treeview


    【解决方案1】:

    你没有将 Id 传递给你的控制器

    source.Read(read =&gt; 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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多