Vous êtes sur la page 1sur 3

MANEJO DEL CONTROL TREEVIEW (ASP.NET 3.

5)
Diseo de la Aplicacin: Default.aspx

TreeView1

Imports System.Data Imports System.Data.SqlClient Partial Class Default1 Inherits System.Web.UI.Page Dim cn As New SqlConnection("Server=localhost;Integrated Security=SSPI;Database=Northwind") Private Function GetProductsAndCategories() As DataSet Dim sqlCat As String = "SELECT CategoryID, CategoryName FROM Categories" Dim sqlProd As String = "SELECT ProductID, ProductName, CategoryID FROM Products" Dim da As SqlDataAdapter = New SqlDataAdapter(sqlCat, cn) Dim ds As DataSet = New DataSet() Try cn.Open() ' Copiando la tabla categorias en el DataSet. da.Fill(ds, "Categories") 'cargando la siguiente consulta de la tabla Productos en el DataAdapter da.SelectCommand.CommandText = sqlProd 'copiando la tabla productos en el DataSet da.Fill(ds, "Products") Finally cn.Close() End Try 'Definiendo la relacion entre la tabla categorias y la tabla productos, por medio de su campo comun. Dim relacion1 As DataRelation = New DataRelation( _ "RelacionCategoria-Productos", ds.Tables("Categories").Columns("CategoryID"), ds.Tables("Products").Columns("CategoryID")) ' Agregando la relacion creada al DataSet Lenguaje de Programacin IV (Profesor: Carlos Garca Vergara) Pgina 1

ds.Relations.Add(relacion1) Return ds End Function Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then 'cargando el DataSet con las tablas relacionadas Dim ds As DataSet = GetProductsAndCategories() ' Recorriendo los registros de la tabla categorias. For Each fila As DataRow In ds.Tables("Categories").Rows 'Utilizando el constructor que requiere slo el texto y no aparece el valor Dim nodeCategoria As TreeNode = New TreeNode(fila("CategoryName").ToString(), fila("CategoryID").ToString()) 'agregando el nodo principal TreeView1.Nodes.Add(nodeCategoria) 'Obteniendo los hijos (productos) para este padre que es la categora. 'todos los productos que pertenecen a la categoria, se guardaran en un arreglo de filas Dim filashijos As DataRow() = fila.GetChildRows(ds.Relations(0)) 'Recorreriendo todos los productos de esta categora. For Each filahijo As DataRow In filashijos Dim nodoProducto As TreeNode = New TreeNode(filahijo("ProductName").ToString(), filahijo("ProductID").ToString()) 'guardando los productos en los subnodos o nodos hijos. nodeCategoria.ChildNodes.Add(nodoProducto) Next filahijo ' Mantenga todas las categoras inicialmente como un menu. nodeCategoria.Collapse() Next fila End If End Sub Protected Sub TreeView1_SelectedNodeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeView1.SelectedNodeChanged 'recuperando el codigo del nodo seleccionado If TreeView1.SelectedNode Is Nothing Then Return End If 'Nodo Principal If TreeView1.SelectedNode.Depth = 0 Then lblmensaje.Text = "Usted selecciono el codigo de Categoria: " 'Sub Nodo nodo hijo ElseIf TreeView1.SelectedNode.Depth = 1 Then lblmensaje.Text = "Usted selecciono el codigo del Producto: " Lenguaje de Programacin IV (Profesor: Carlos Garca Vergara) Pgina 2

End If lblmensaje.Text += TreeView1.SelectedNode.Value 'Nota si quiere seleccionar el nombre del producto o categroia lblDatoSeleccionado.Text = "Texto Seleccionado: " & TreeView1.SelectedNode.Text End Sub End Class

Lenguaje de Programacin IV (Profesor: Carlos Garca Vergara)

Pgina 3

Vous aimerez peut-être aussi