|
#1
|
|||
|
|||
TreeView и БД
Всем привет, такой вопрос - имеется некая бд с таблицей типа paradox в которой есть 2 уникальных поля ID и ParentID (ID предка) и есть treeview, как сделать иерархическое отображение данных этой таблицы в treeview?
|
#2
|
|||
|
|||
Вообще говоря, мне приходилось ходить по ветвям дерева, хранящегося в иерархической таблице, но это был MS SQL Server (версия, начиная с 5-й). Там для рекурсии можно использовать шаблоны (CTE - common table equation), которые описываются так:
PHP код:
В Select2 используется шаблон. Select1 на самом деле содержит два Select'а, соединённых UNION ALL. Первый содержит отправную точку, второй - условие направления (к предкам или потомкам). Рекурсия заканчивается, когда Select2 возвращает пустой набор. Например: Код:
WITH tree(num, parent, someth, path1) AS ( SELECT ID, ID_Parent, Data, CAST(ID AS varchar(5)) FROM Table1 WHERE (ID = 1) UNION ALL SELECT V.ID, V.ID_Parent, V.Data, CAST(path1 + '_' + CAST(V.ID AS varchar(5)) AS varchar(5)) FROM Table1 AS V INNER JOIN tree AS T ON T.num = V.ID_Parent) SELECT num, parent, someth, path1 FROM tree AS tree_1 ORDER BY path1 tree.jpg Последний раз редактировалось AlexSku, 28.10.2011 в 12:17. |
#3
|
|||
|
|||
Не везде это поддерживается. Да и где поддерживается - синтаксис разный.
Варианта 3. 1. Либо честно через рекурсию грузим все дерево сразу. 2. Через ту же рекурсию, только отложенную, грузим дерево по развороту конкретного узла, подгружая следующий уровень. 3. Получаем весь список и по нему строим дерево. |
#4
|
|||
|
|||
я сделал по другому - нашел в интернете пример по созданию бдтривью своими руками:
1.JPG Немного переделал под себя: 2.JPG И щас вот думаю как на основе этого примера сделать свой компонент для иерархического отображения БД =(( (Задали же блин Последний раз редактировалось whizzkey, 28.10.2011 в 07:20. |