我正在使用带有Razor引擎和ASP.NET MVC3架构的ASP.NET MVC扩展2011年第3季度(开源版本)。我想将一个网格绑定到数据库中的一个实体,该实体具有自引用结构(如树)。因此,我不能像固定级别的示例那样定义它,因为我不知道这个网格有多少级别。因此,我想将我的网格动态绑定到一个模型。
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组件中,它已经实现了。
谢谢。
您不能自动完成,您需要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(....);
})
)
希望能有所帮助。