【问题标题】:Self referring hierarchical data binding自引用分层数据绑定
【发布时间】:2012-02-28 23:04:04
【问题描述】:

我正在使用带有 Razor 引擎和 Asp.net MVC3 架构的 ASP.NET MVC Q3 2011 扩展(开源版本)。 我想将网格绑定到我的数据库中具有自引用结构(如树)的实体。因此,我不能像具有固定级别的示例那样定义它,因为我不知道这个网格有多少级别。所以,我想将我的网格动态绑定到模型。

 public class Category : Entity
{
    public virtual int Id {private set; get; }
    public virtual string Title { set; get; }
    public virtual string Description { set; get; }
    public virtual string ParentsPath { set; get; }
    public virtual IList<Category> Children { get; private set; }
    public virtual Category Parent { get; set; }

 }

我也在使用 Fluent NHibernate,因此我将子项和父项存储在我的实体中。

有没有办法做到这一点?我在文档中找不到任何东西。 我错过了什么吗?因为在Ajax和Winform组件中已经实现了。

谢谢。

【问题讨论】:

    标签: asp.net-mvc-3 fluent-nhibernate telerik-grid telerik-mvc


    【解决方案1】:

    您无法自动完成,您需要进行 foreach 迭代并生成项目,然后手动将它们添加到树中。

    当我需要显示层次结构时,我为 PanelBar 做了它。

    这是一个例子:

    @(Html.Telerik().PanelBar()
    .Name("Details")
    .ExpandMode(PanelBarExpandMode.Multiple)    
    .Items(items =>
        {
            var parent = Model.ParentWorkItem;
            List<WorkItem> lst = new List<WorkItem>();
    
            while (parent != null)
            {
                lst.Add(parent);
                parent = parent.ParentWorkItem;
            };
            for (int i = lst.Count-1; i >=0;i-- )
            {
                parent = lst[i];
                items.Add()                    
                    .Expanded(false)
                    .Text("...")
                    .LoadContentFrom(...);
            }
            items.Add()
                .Expanded(true)
                .Text(...)
                .Content(....);
        })
    

    )

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-07
      • 1970-01-01
      • 2011-05-19
      • 2011-03-16
      相关资源
      最近更新 更多