• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1097
  • Last Modified:

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

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.
  • 2
1 Solution
Brian CroweDatabase AdministratorCommented:
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

	Private Sub FillTaskTree()
		Dim tn As TreeNode
		Dim i As Integer
		Dim dv As New DataView(dsUserAdmin.Tables("Task"))
		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
	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
	End Sub

Open in new window

NewUser09Author Commented:

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.

Brian CroweDatabase AdministratorCommented:
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.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now