CheckboxList TreeView - PullRequest
       29

CheckboxList TreeView

0 голосов
/ 19 июня 2011

У меня есть CheckboxList в ASP.NET , который я хотел бы преобразовать в TreeView, используя что-то вроде jsTree .Это возможно?Узлы имеют до четырех уровней глубины с CheckboxLists внутри CheckboxLists .Можно ли волшебным образом превратить их в TreeView или мне нужно будет целый день возиться с JS в коде позади?

1 Ответ

1 голос
/ 19 июня 2011

Предполагая, что вы можете рассчитать «Глубину» каждого узла, вы можете добавить следующий код в 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, которые я не буду здесь включать (слишком упрощенно)

PS Важно, чтобы элементыдобавленные в lstItems упорядочены правильно на основе иерархической структуры.Решение, которое я рекомендую, - использовать следующий метод в качестве ключа сортировки вашего источника данных:

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

Где Key - это уникальное поле (в контексте одного родителя).- Это может быть имя, заказ и т. Д.

...