?
Solved

Populate Treeview dynamically from SQL 2000 stored procedure in VB.net 2.0

Posted on 2009-05-18
3
Medium Priority
?
1,077 Views
Last Modified: 2012-05-07
Hi
How do I dynamically pouplate a treeview in VB.net 2.0 (visual studio 2005) from a sql 2000 stored procedure?
Number of child nodes changes.The database structUre is as below

ContenId ParentContentID Name
1             0                          Main
2             1                          Home
3              1                          News
This is to populate a treeview to get all the pages/menu in CMS and for users to allow add/edit pages and add new pages under existing pages as displayed in the Treeview.
Working on a deadline - so any help is appreciated.
Awaiting responsE
Thanks a Ton.
0
Comment
Question by:NewUser09
  • 2
3 Comments
 
LVL 34

Accepted Solution

by:
Brian Crowe earned 600 total points
ID: 24416914
I have attached some code that I used to do something very similar.  Basically you establish a root node then you just recursively add children referencing the ParentID.

Hope this helps

BriCrowe
	Private Sub FillTaskTree()
 
		Dim tn As TreeNode
		Dim i As Integer
		Dim dv As New DataView(dsUserAdmin.Tables("Task"))
 
		tvTasks.Nodes.Clear()
 
		dv.RowFilter = "ParentTaskID IS NULL"
		dv.Sort = "DisplayOrder"
		For i = 0 To dv.Count - 1
			tn = tvTasks.Nodes.Add(dv(i)("Name").ToString)
			tn.Tag = dv(i)("TaskID")
			tn.ImageIndex = TaskIcon.ClosedContainer
			tn.SelectedImageIndex = TaskIcon.ClosedContainer
			FillTaskChildNodes(tn)
			tn.Expand()
		Next
	End Sub
 
	Private Sub FillTaskChildNodes(ByVal tnParent As TreeNode)
 
		Dim tnChild As TreeNode
		Dim i As Integer
		Dim dv As New DataView(dsUserAdmin.Tables("Task"))
 
		Dim strfilter As String = "ParentTaskID = " + tnParent.Tag.ToString + _
		 " AND TaskTypeID <> " + CInt(TaskType.Action).ToString
		dv.RowFilter = strfilter
		dv.Sort = "DisplayOrder"
		For i = 0 To dv.Count - 1
			tnChild = tnParent.Nodes.Add(dv(i)("Name").ToString)
			tnChild.Tag = dv(i)("TaskID")
			Select Case CInt(dv(i)("TaskTypeID"))
				Case TaskType.Container
					tnChild.ImageIndex = TaskIcon.ClosedContainer
					tnChild.SelectedImageIndex = TaskIcon.ClosedContainer
				Case TaskType.Tool
					tnChild.ImageIndex = TaskIcon.Tool
					tnChild.SelectedImageIndex = TaskIcon.Tool
				Case TaskType.Report
					tnChild.ImageIndex = TaskIcon.Report
					tnChild.SelectedImageIndex = TaskIcon.Report
			End Select
			FillActionNodes(tnChild)
			FillTaskChildNodes(tnChild)
		Next
	End Sub

Open in new window

0
 

Author Comment

by:NewUser09
ID: 24417276
Hi

Thank u very much for u'r comment.
I guess u are using .net 3 framework -Iam using .net framework 2.0 and I have found  a way to do it using the below link.
http://aspalliance.com/732 

Thanks
0
 
LVL 34

Expert Comment

by:Brian Crowe
ID: 24423107
Actually the code is fairly old and was written in VS2003 so I expect I was using .Net 1.1 but as long as you found something that works for you.
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
This shares a stored procedure to retrieve permissions for a given user on the current database or across all databases on a server.
This video shows, step by step, how to configure Oracle Heterogeneous Services via the Generic Gateway Agent in order to make a connection from an Oracle session and access a remote SQL Server database table.
Via a live example, show how to shrink a transaction log file down to a reasonable size.
Suggested Courses

807 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question