我有一个CheckboxList in ASP.NET,我想使用类似于jsTree的东西将其转换为TreeView。这个是可能的吗?这些节点嵌套在CheckboxLists中,深度可达四个层次,其中包含CheckboxLists。它有可能神奇地把它们变成一个TreeView,还是我需要整天在代码背后修改JS呢?
发布于 2011-06-19 12:14:16
假设您可以计算每个节点的“深度”,您可以将以下代码添加到OnPreRender中,并显示您的项的层次结构:
protected void overrided OnPreRender()
{
lstItems.Items.Do(a=>
{
var item = // get item from a.Value
for(var i = 0; i< item.Depth; i++)
{
a.Text = "<span class='spacer'></span>" + a.Text;
}
});
}并将以下规则添加到样式表中:
span.spacer { width:20px; }尽管如果您希望具有折叠/展开功能,您将需要添加一些我在这里不包含的javascript操作(也要保持简单)
根据层次结构正确地排列添加到lstItems中的项目是很重要的。我推荐的解决方案是使用以下方法作为数据源的排序键:
public string GetFullPath()
{
if(Parent == null) return Key;
return Parent.GetFullPath() + ">" + Key;
}其中键是唯一的字段(在单亲的上下文中)。-可以是姓名、秩序等。
https://stackoverflow.com/questions/6401850
复制相似问题