VB.NET - Usando o controle TreeView III
Em diversos artigos do site eu já abordei o controle TreeView. Se você pretende saber mais sobre este controle veja a relação abaixo:
O controle TreeView exibe uma coleção de itens maneira hierárquica como o Explorer do Windows: Dependendo do seu projeto pode ser interessante usar os recursos deste controle.
O controle TreeView faz parte da seguinte hierarquia de classes:
Algumas características básicas do TreeView:
Cada Item em um TreeView esta encapsulado dentro de um objeto TreeNode.
Cada TreeNode pode ter zero , um ou muitos nós filhos.
A propriedade Nodes do treeview representa a coleção de objetos TreeNode que se relacionam com o nó raiz ou o nó superior na hierarquia.
Cada Nó possui sua própria coleção Nodes que contém todos os Nós filhos
Você pode interagir via código através de cada uma destas coleções
Você pode selecionar somente um único Nó por vez
Você pode selecionar um Nó clicando nele com o mouse ou usando o teclado.
Para selecionar um Nó via código definimos a propriedade TreeView.SelectedNode e o Nó atualmente selecionado pode ser obtido pelo valor desta mesma propriedade
Use a propriedade FullPath do Nó selecionado para determinar a hierarquia completa para o Nó.
Neste artigo vou mostrar como podemos preencher um controle TreeView com o conteúdo de duas tabelas relacionadas.
Vamos acessar o banco de dados Northwind do SQL Server e usar as tabelas Categories e Products. Vejamos abaixo a estrutura destas tabelas:
|
|
tabela Categories | tabela Products |
Existe um relacionamento entre a tabela Products e Categories via campo CategoryID onde uma categoria pode conter muitos produtos.
Vamos então preencher o treeview com todas as categorias e a seguir para cada uma delas preencher com os dados dos produtos relacionados.
Inicie um novo projeto no VS.NET do tipo Windows Application usando a linguagem VB.NET. Altere o nome do formulário padrão para frmtvw1 e inclua no formulário um controle TreeView com o nome de - tvw1 - e um botão de comando - btntvw1 - conforme a figura abaixo:
Vamos agora definir a declaração do namespace para a classe de acesso a dados. Como vou acessar o SQL Server o namespace usado será::
Imports System.Data.SqlClient
Em seguida vamos definir variáveis e objetos que será usados no projeto:
' a conexao Dim cn As SqlConnection'Adaptadores para categorias e produtos
Dim daCategorias As SqlDataAdapterDim daProdutos As SqlDataAdapter
'O DataSet
Dim ds As DataSet'Um DataView para os produtos
Dim dvProdutos As DataViewFinalmente no evento Click do botão de comando vamos incluir o código que irá fazer o resto do trabalho:
Private Sub BtnTvw1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTvw1.Click 'define string de conexao com o SQL Server , banco de dados Northwind Dim conexao As String = "server=(local);trusted_connection=true;database=Northwind;Integrated Security=SSPI" 'cria uma nova conexao cn = New SqlConnection(conexao) 'define os Adaptadores para categorias e produtos daCategorias = New SqlDataAdapter("Select * from Categories", cn) daProdutos = New SqlDataAdapter("Select * from Products", cn) 'define o DataSet ds = New DataSet 'preencher o DataSet com categorias e produtos Try daCategorias.Fill(ds, "Categorias") daProdutos.Fill(ds, "Produtos") Catch ex As Exception MsgBox(ex.Message) Exit Sub End Try 'definir o dataview para produtos dvProdutos = ds.Tables("Produtos").DefaultView 'TreeView - define o No Raíz tvw1.Nodes.Add("Categorias") 'Preenchendo o TreeView Dim dr As DataRow Dim nodo As TreeNode 'percorre cada linha na tabela categorias For Each dr In ds.Tables("Categorias").Rows 'preencher todas as categorias com o nome - CategoryName nodo = tvw1.Nodes(0).Nodes.Add(dr("CategoryName")) 'preencher os produtos para cada categoria filtrando por codigo de categoria dvProdutos.RowFilter = "CategoryID = " & dr("CategoryID") 'preenche os nos do treeview com o nome do produto para cada categoria Dim i As Integer For i = 0 To dvProdutos.Count - 1 nodo.Nodes.Add(dvProdutos.Item(i).Row("ProductName")) Next Next End Sub |
Ao executar o projeto quando o usuário clicar no botão para preencher o TreeView iremos obter:
O treeview exibindo as categorias |
Ao clicar em um nó categoria teremos a exibição dos seus produtos |
Embora seja um exemplo básico creio que deu para aumentar os horizontes quanto a utilização deste controle em seus projetos VB.NET
Pegue o código completo aqui : tvw1.zip
Eu sei , é apenas VB.NET , mas eu gosto...
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
|
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#