Ir al contenido principal

Treeview Persistente

Protected Sub TreeView1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeView1.Load
'Verifico si existe en Sesi¢n el estado del treeview
'Si existe deshabilito el ExpandDepth
If Session("TreeViewState") IsNot Nothing Then
Me.TreeView1.ExpandDepth = 0
End If
'Cuando hago el bound entre mi fuente de datos y el treeview
'verifico si existe o no el estado del treeview guardado en sesi¢n
If Session("TreeViewState") Is Nothing Then
' Si no existe, grabo el estado actual de expandidos/contraidos del TreeViews
Dim list As ArrayList = New ArrayList
SaveTreeViewState(TreeView1.Nodes, list)
Session("TeeViewState") = list
Else
'Si existe, restauro el estado guardado de expandidos/contraidos del TreeViews
Dim list As ArrayList = CType(Session("TreeViewState"), ArrayList)
RestoreTreeViewState(TreeView1.Nodes, list)
End If
End Sub

Protected Sub TreeView1_TreeNodeCollapsed(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs) Handles TreeView1.TreeNodeCollapsed
If IsPostBack Then
Dim list As ArrayList = New ArrayList
SaveTreeViewState(TreeView1.Nodes, list)
Session("TreeViewState") = list
End If
End Sub

Protected Sub TreeView1_TreeNodeExpanded(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs) Handles TreeView1.TreeNodeExpanded
If IsPostBack Then
Dim list As ArrayList = New ArrayList
SaveTreeViewState(TreeView1.Nodes, list)
Session("TreeViewState") = list
End If
End Sub

'''
''' Guarda el estado de nodos expandidos en la variable de sesi¢n
'''

Private Sub SaveTreeViewState(ByVal nodes As TreeNodeCollection, ByVal list As ArrayList)
' Guarda de forma recursiva todos los nodos expandidos en el ArrayList (List)
For Each node As TreeNode In nodes
If (node.ChildNodes IsNot Nothing And node.ChildNodes.Count <> 0) Then
If (node.Expanded.HasValue AndAlso CBool(node.Expanded) AndAlso Not String.IsNullOrEmpty(node.Text)) Then
list.Add(node.Text)
SaveTreeViewState(node.ChildNodes, list)
End If
End If
Next
End Sub

'''
''' Restaura el estado de los nodos del Treeview
'''

Private Sub RestoreTreeViewState(ByVal nodes As TreeNodeCollection, ByVal list As ArrayList)
For Each node As TreeNode In nodes
' Restaura el estado de un nodo.
If list.Contains(node.Text) Then
If (node.ChildNodes IsNot Nothing AndAlso (node.ChildNodes.Count <> 0) AndAlso (Not node.Expanded.HasValue)) Then ' AndAlso node.Expanded.GetValueOrDefault(False)) Then
node.Expand()
End If
ElseIf (node.ChildNodes IsNot Nothing AndAlso node.ChildNodes.Count <> 0 AndAlso node.Expanded.HasValue) Then ' AndAlso node.Expanded.GetValueOrDefault(True)) Then
node.Collapse()
End If
' Si el nodo tiene un nodo "hijo" restaura su estado tambi‚n
If (node.ChildNodes IsNot Nothing AndAlso node.ChildNodes.Count <> 0) Then
RestoreTreeViewState(node.ChildNodes, list)
End If
Next
End Sub

Comentarios

Anónimo dijo…
Coin Casino | Play with bitcoin at the best online casino
Coin Casino is a new หารายได้เสริม casino launched in 메리트 카지노 2015 by Quickspin Holdings, a company that is part of the London-based casino software 인카지노

Entradas más populares de este blog

Ocultar una columna de un gridView

Trabajando en una página ASP.NET. me surgió la necesidad de incluir un valor oculto para los registros que presentaba en un gridView. En primera instancia probé con la propiedad Visible del campo seteandolo en false, pero no sirvió. Luego encontré el siguiente código que me solucionó el problema: protected void GrdVwSecciones_RowCreated(object sender, GridViewRowEventArgs e) { e.Row.Cells[8].Visible = false; } Basicamente la solución pasa porque el método ocurre una vez que se ha creado la fila (RowCreated :P).

Web service (.Net v/s Delphi 7)

Hace poco tuvimos que rompernos las cabeza viendo como comunicar una aplicación Delphi con un Web Service desarrollado en .Net Lo primero es indicar a nuestra aplicación delphi la referencia hacia el web service: 1) El primer paso en el consumo (uso) de webservices es la creación del Proxy, para esto debemos ir al menú File->New-Other... y selecciónar el tab de "WebServices" 2) Una vez en esta ventana debemos seleccionar WSDLImporter para así empezar a crear nuestro proxy usando el wizard. 3) En este primer paso de creación del proxy para consumir nuestro Webservice debemos ingresar la URL en "Location of WSDL File o URL". 4) Esta primera parte del proceso genera una interfáz con los métodos, propiedades y atributos del webservice tal como se muestra en la siguiente imagen. 5) El último paso del wizard de creación del proxy para consumir nuestro Webservice es la generación del código de una interfáz que nos permitirá su uso en forma natural, ocultando todo el pro...

Expresiones Regulares

Expresión regular del RUT ValidationExpression="\b\d{1,8}\-[K|k|0-9]" Expresión regular para formato de Fecha ValidationExpression="^(0[1-9]|[12][0-9]|3[01])-(0[1-9]|1[012])-(19|20)\d\d" Expresión regular para correo electrónico ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"