Jquery 复选框列表树视图

Jquery 复选框列表树视图,jquery,asp.net,treeview,jstree,checkboxlist,Jquery,Asp.net,Treeview,Jstree,Checkboxlist,我在ASP.NET中有一个复选框列表,我想使用类似jsTree的东西将其转换为TreeView。这可能吗?节点嵌套到四个级别,在复选框列表中包含复选框列表。有没有可能神奇地将它们变成一个TreeView,或者我需要在代码背后整日修补JS?假设您可以计算每个节点的“深度”,您可以将以下代码添加到OnPreRender并显示您的项目: protected void overrided OnPreRender() { lstItems.Items.Do(a=> {

我在ASP.NET中有一个
复选框列表
,我想使用类似jsTree的东西将其转换为
TreeView
。这可能吗?节点嵌套到四个级别,在复选框列表中包含复选框列表。有没有可能神奇地将它们变成一个
TreeView
,或者我需要在代码背后整日修补JS?

假设您可以计算每个节点的“深度”,您可以将以下代码添加到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;
        }
    });
}
虽然如果你想拥有折叠/扩展功能,你需要添加一些javascript操作,我这里不包括这些操作(太简单了)

注意:重要的是,添加到LSTTems中的项目必须根据层次结构正确排序。我建议的解决方案是使用以下方法作为数据源的排序键:

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

其中键是唯一字段(在单亲上下文中)。-它可以是名称、顺序等。

有趣的选项,但我最终选择了RadTreeView。它以最少的工作量提供了最大的灵活性(可惜不是免费的)是的,不是免费的,这是我选择这种方法的主要原因。虽然如果您只实现一次(作为扩展方法或其他东西),您可以永远使用它。
public string GetFullPath()
{
    if(Parent == null) return Key;
    return Parent.GetFullPath() + ">" + Key;
}