The application is currently developed using ASP.NET (C#)
I have code to pull data from a SQL Server 2008 table and organize it into an hierarchy:
Code:
With hierarchy (id, [location id], name, depth, trail)
As (
-- selects the "root" level items.
Select ID, [LocationID], Name, 1 As depth, [trail] = cast(Name + '/' as varchar(255))
From dbo.Locations
Where ID = [LocationID]
Union All
-- selects the descendant items.
Select child.id, child.[LocationID], child.name,
parent.depth + 1 As depth, [trail] = cast(trail + child.name + '/' as varchar(255))
From dbo.Locations As child
Inner Join hierarchy As parent
On child.[LocationID] = parent.ID
Where child.ID != parent.[Location ID])
-- invokes the above expression.
Select *
From hierarchy
Order By depth
In the "trail" column each field will display the hierarchy separated by a '/'.
Example:
TRAIL
_______________
Parent1/Child1/
Parent1/Child2/
Parent1/Child3/
Parent1/Child4/GrandChild1/
--
I would like to display these "paths" as a tree view.
Example:
HTML Code:
+ Parent1
- Child1
- Child2
- Child3
- Child4
- GrandChild1
Is there a more efficient way to do this, rather than just parse the "trail" column from my SQL table. Could I do it with C# while initially building the hierarchy?
Any help is appreciated.
Thanks.