CheckboxList TreeView

时间:2011-06-19 10:31:05

标签: jquery asp.net treeview jstree checkboxlist

我在 ASP.NET 中有一个CheckboxList,我想使用 jsTree 之类的内容将其转换为TreeView。这可能吗?通过 CheckboxLists 中的 CheckboxLists ,节点最多可嵌套四层。是否可以将它们神奇地变成TreeView或者我是否需要在代码隐藏中使用 JS 整天修补?

1 个答案:

答案 0 :(得分:1)

假设您可以计算每个节点的“深度”,您可以将以下代码添加到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动作(也保持简单)

P.S。重要的是,添加到lstItems的项目是基于层次结构正确排序的。解决方案我建议使用以下方法作为数据源的排序键:

public string GetFullPath()
{
    if(Parent == null) return Key;
    return Parent.GetFullPath() + ">" + Key;
}

其中Key是唯一字段(在单个父元素的上下文中)。 - 它可以是名称,订单等。