首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ServerSide包装器的具有分层数据源的Kendo TreeView

使用ServerSide包装器的具有分层数据源的Kendo TreeView
EN

Stack Overflow用户
提问于 2013-04-26 22:14:10
回答 2查看 3.6K关注 0票数 2

如何使用MVC创建HierarchialDataSource并将其用作DataSource的TreeView?

我已经创建了一个分层结构,它作为Json从控制器返回,但是TreeView只显示顶级节点。是否需要在TreeView上设置一个属性来指示DataSource是层级的?

我看到了几个使用JS和kendo.data库的客户端示例,但我找不到服务器端的等效程序集。

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2013-08-16 20:50:31

据我所知,要绑定的模型的属性必须与HierarchicalDataSource:http://docs.kendoui.com/api/framework/hierarchicaldatasource匹配

我使用树视图来显示菜单结构,所以这是我的模型:

代码语言:javascript
复制
public class Menu
{
    public int Id { get; set; }
    public int? ParentId { get; set; }
    public string Description { get; set; }

    public int id
    {
        get { return this.Id; }
    }                

    public bool hasChildren { get; set; }
}

我必须显式地使用这种大小写实现idhasChildren属性(在将模型推送到视图之前,我将根据查询填充hasCHildren属性)。

我不确定这是否是正确的方法(仍然在努力寻找官方信息),但至少它是有效的。

票数 1
EN

Stack Overflow用户

发布于 2016-12-12 20:47:24

在您的cshtml文件中使用此命令:

代码语言:javascript
复制
@(Html.Kendo().TreeView()
   .Name("trvReport")
   .DataTextField("Name")
   .DataSource(dataSource => dataSource
      .Read(read => read.Action("ReportType", "Read"))
      .Model(model =>
      {
        model.Id("Id");
        model.Field("Name", typeof(string));
        model.Children("Reports");
        model.HasChildren("HasReports");
      })
   )
)

在模型中实现HasChildren,如下所示:

代码语言:javascript
复制
public class ReportType
{
    public int Id { get; set; }
    public string Name { get; set; }

    public ICollection<Report> Reports { get; set; }

    [NotMapped]
    public bool HasReports { get { return Reports.Count() > 0; } }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16238654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档