ASP.NET: как создать расширяемый пустой TreeNode - PullRequest
3 голосов
/ 12 июля 2011

Мне нужно заполнить TreeNode.ChildNodes в случае TreeView.TreeNodeExpanded. Проблема в том, что узел пуст до того, как событие будет запущено, и в этом случае его нельзя развернуть, а рядом с ним не отображается значок расширения [+] .

Я хочу сделать узел расширяемым в случае, если у его связанного объекта есть несколько дочерних элементов без добавления этих дочерних элементов в узел.

Я думал о добавлении виртуального дочернего элемента в узел и удалении его при расширении. Есть ли лучшие варианты ??

Спасибо.

Ответы [ 3 ]

3 голосов
/ 14 июля 2011

Три шага, чтобы сделать трюк:

1 - Установите TreeView.ExpandDepth на 0 . Это исключает расширение добавленных TreeNode объектов в TreeView и показывает символ расширения [+] рядом с каждым TreeNode, для которого свойство TreeNode.PopulateOnDemand установлено в true .

2 - Установите TreeNode.PopulateOnDemand в True для каждой ветви TreeNode. Когда коллекция TreeNode.ChildNodes равна пусто , символ расширения [+] будет отображаться только рядом с TreeNode объектами, свойство TreeNode.PopulateOnDemand которых установлено в true .

3- Обрабатывать событие TreeView.TreeNodePopulate , чтобы разложить узлы ветвления при расширении. Это событие будет запущено, когда TreeNode - с TreeNode.PopulateOnDemand, установленным в true - - расширено непосредственно перед тем, как событие TreeView.TreeNodeExpanded будет запущено.

0 голосов
/ 12 июля 2011

Не уверен, и у меня нет времени, чтобы попробовать, но я предполагаю, что вы ищете, это свойство TreeNode.PopulateOnDemand и TreeView.TreeNodePopulate событие.

0 голосов
/ 12 июля 2011

Предлагаю отредактировать шаблон узла.Взгляните на Элемент управления ASP.NET AJAX TreeView с шаблонами .

...