Робота з treeview

На багатьох форумах присвячених ASP .Net технології піднімалося питання роботи з TreeView і його динамічного заповнення, але рішення потрібного мені я так і не знайшов. Хочу представити своє рішення даної проблеми.

На багатьох форумах присвячених ASP .Net технології піднімалося питання роботи з TreeView і його динамічного заповнення, але рішення потрібного мені я так і не знайшов. Хочу представити своє рішення даної проблеми.

Створення таблиці для зберігання дерева (на прикладі дерева департаментів)

Обов'язкова умова ID рутовий Ноди має бути 0.

Реалізація

Крок перший, витягаємо все Ноди з таблиці і поміщаємо їх в OleDbDataReader.

в ньому будемо зберігати всі ноди нашого дерева.

Після цього можна додавати корінь дерева (Root)

Далі додаємо Root в наш SortedList Nodes.

Як ключ використовуємо ID Ноди.

Після цього додаємо всі інші Ноди.

Як ID для Ноди беремо PARENTID з таблиці.

У підсумку отримуємо SortedList заповнений нодамі нашого дерева.

Тепер це все треба зібрати разом.

Перебираємо все Ноди в Nodes.

Спочатку перевіряємо чи не є ця нода Root (інакше не має сенсу для Root батьком є ​​Root).

Далі читаємо ID Ноди, ID Ноди є номером батьківської Ноди в Nodes.

Знаходимо батьківську ноду в Nodes.

Додаємо нашу ноду до батьківської.

Так в циклі проходимо по всьому Nodes.

Додаємо в наше дерево Root.

У підсумку отримуємо заповнений TreeView.

Схожі статті