Introdução
Ao decorrer desta matéria, utilizaremos o controle WebControl TreeView, que vem junto com o pacote IE WebControl que podemos baixar clicando aqui.
O exemplo abaixo acessa uma base de dados agrupando o resultado e adicionando ao ListView. O segredo desse componente é adicionar os Nodes. Que são os itens. Então tenha sempre a preocupação de quando adicionar um Node, este Node tem que ser adicionado em um local na arvore.
TreeView com banco de dados:

Insira um webform e adicione um componente TreeView
Adicionando Treeview:
Inserido procedimento Page_Load
Private Sub Page_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase .Load
If Not Me .Page.IsPostBack Then
'Procedimento para Carregar Treeview
Me .CarregaTreeView()
End If
End Sub
Inserido procedimento para carregar TreeView
'
'Aqui está o codigo para carregarTreeview
Sub CarregaTreeView()
Dim strQuery As System.Text.StringBuilder
Dim strCategoria As String = ""
Dim dtProdutos As DataTable
strQuery.Append("select P.ProductID,ProductName,C.CategoryName from Products P,Categories C ")
strQuery.Append("where P.CategoryID=C.CategoryID ")
strQuery.Append("order by C.CategoryName,P.ProductName asc ")
dtProdutos = Me .ExecutaQuery(strQuery.ToString)
TreeView1.Nodes.Clear() ' Limpando Treeview
TreeView1.ExpandLevel = 1 ' Expandindo
Dim Node As New TreeNode ' Inicializando Node
Dim i As Int32 = 0 ' Variavel para loop
'//////////////////////////////////////////////////////////////////
'//// Adicionando Node Raiz
'//////////////////////////////////////////////////////////////////
Node.ImageUrl = "imagestree/xpMyComp.gif" ' Normal
Node.ExpandedImageUrl = "imagestree/xpMyComp.gif" ' Expandido
Node.Text = "Produtos"
TreeView1.Nodes.AddAt(0, Node) ' Adicionando
'////////////////////////////////////////////////////////////////////////////
'// Adicionando nodes
'// O Código abaixo realiza loop pelo DataTable e Agrupa
'////////////////////////////////////////////////////////////////////////////
Try
For i = 0 To dtProdutos.Rows.Count - 1
If Not strCategoria.Equals(dtProdutos.Rows(i)(2)) Then
'Node Pai Produtos
strCategoria = Convert.ToString(dtProdutos.Rows(i)(2))
Node = New TreeNode
Node.ImageUrl = "imagestree/xpPanel.gif" ' Image
Node.ExpandedImageUrl = "imagestree/xpPanel.gif"
Node.Text = strCategoria ' Descricao
TreeView1.Nodes(0).Nodes.Add(Node) ' Adicionando
'Node Produtos_Filho
Node = New TreeNode
Node.ImageUrl = "imagestree/person.gif"
Node.ExpandedImageUrl = "imagestree/person.gif"
Node.Text = Convert.ToString(dtProdutos.Rows(i)(1))
Node.NavigateUrl = "produtos.aspx?id=" + Convert.ToString(dtProdutos.Rows(i)(0))
Node.Target = "_TOP"
TreeView1.Nodes(0).Nodes(TreeView1.Nodes(0).Nodes.Count - 1).Nodes.Add(Node)
Else
'Node Produtos_Filho
Node = New TreeNode
Node.ImageUrl = "imagestree/person.gif"
Node.ExpandedImageUrl = "imagestree/person.gif"
Node.Text = Convert.ToString(dtProdutos.Rows(i)(1))
Node.NavigateUrl = "produtos.aspx?id=" + Convert.ToString(dtProdutos.Rows(i)(0))
Node.Target = "_TOP"
TreeView1.Nodes(0).Nodes(TreeView1.Nodes(0).Nodes.Count - 1).Nodes.Add(Node)
End If
Next
Catch ex As Exception
Response.Write("Falha Treeview " + ex.Message.ToString)
End Try
End Sub
Inserido procedimento para consulta ao banco de dados
'Executa query no banco de dados e retorna DataTable
'Ajustar String de acesso banco de dados de acordo com necessidade
Private Function ExecutaQuery( ByVal query As String ) As DataTable
Dim conn As New SqlConnection("Data Source=127.0.0.1; Initial atalog=Northwind;UID=sa;Pwd=")
Dim da As New SqlDataAdapter(query, conn)
Dim dt As New DataTable
Try
da.Fill(dt)
Catch ex As SqlException
Response.Write("Erro SQL" + ex.Message.ToString)
Catch ex As Exception
Response.Write("Erro Geral:" + ex.Message.ToString)
Finally
dt.Dispose()
da.Dispose()
conn.Dispose()
End Try
Return dt
End Function
Finalizando
Este é um ótimo componente e colocando boas imagens você conseguirá um bom resultado na sua aplicação. Para fazer download das imagens que utilizei. aqui .
O que você gostaria de ver? Aguardo seu comentário! Participe! Até próximo artigo!

não funcionou, preciso tirar algumas duvidas, existe como? Obrigado
Responder comentárioOs textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.
Ramon Durães é autor da frase “Não tem que ser difícil”. Possui larga experiência em tecnologia Microsoft. É Microsoft Most Valuable Professional (MVP), Trabalha como Software Engineer na 2pc Professional Consulting onde trabalha com empresas ligadas ao desenvolvimento de software fornecendo amplo suporte na migração para .NET, arquitetura de software e adoção de Visual Studio Team System. Realiza palestras e treinamentos nos maiores eventos do Brasil. Entre em contato pelo blog (http://www.2pc.com.br/).
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.