Solved

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

Posted on 2009-05-18
3
1,011 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 150 total points
Comment Utility
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
Comment Utility
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
Comment Utility
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

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Introduction In my previous article (http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/SSIS/A_9150-Loading-XML-Using-SSIS.html) I showed you how the XML Source component can be used to load XML files into a SQL Server database, us…
Slowly Changing Dimension Transformation component in data task flow is very useful for us to manage and control how data changes in SSIS.
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.
Viewers will learn how to use the INSERT statement to insert data into their tables. It will also introduce the NULL statement, to show them what happens when no value is giving for any given column.

772 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

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now