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
'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
Coin Casino is a new หารายได้เสริม casino launched in 메리트 카지노 2015 by Quickspin Holdings, a company that is part of the London-based casino software 인카지노