Consulta sobre treeview
Publicado por Juan (1 intervención) el 11/08/2011 15:10:08
Hola: tengo un problemilla y quisiera saber si alguien puede ayudarme a resolverlo.
En una pagina de busqueda, se cargan los datos para realizar un filtrado, una vez que se hace obtengo un conjunto xml que corresponden a un cliente determinado.
El xml contiene información de varias tablas de la base de datos (ventas del cliente, etc) y lo muestro en un treeview, y aqui está el problema, cuando se carga el treeview la pagina tarda mucho (la primera vez) y luego de la primera vez, tarda 4 veces mas en cargar el treeview (probando con el mismo cliente por lo que el conjunto de datos es el mismo). Interpreto que no esta desechando los datos y por lo tanto se carga el navegador y provoca la demora. El treeview es arbCliente.
El proceso que uso para cargar el treeview es el siguiente
Private Sub CargarXmlArbol(ByVal xmlConci As XmlNode, Optional ByVal nod As TreeNode = Nothing)
If nod Is Nothing Then
arbCliente.Nodes.Clear()
Dim nodoRaiz As New TreeNode("Detalles", "0")
arbCliente.Nodes.Add(nodoRaiz)
CargarXmlArbol(xmlConci, nodoRaiz)
nodoRaiz.Expand()
Else
For Each xmlItem As XmlNode In xmlConci.ChildNodes
If xmlItem.NodeType = XmlNodeType.Element Then
Dim arbNode As New TreeNode
arbNode.Text = xmlItem.Name
arbNode.Value = xmlItem.Value
If xmlItem.HasChildNodes AndAlso xmlItem.FirstChild.NodeType = XmlNodeType.Text Then arbNode.Text += " : " + xmlItem.FirstChild.Value.ToString
nod.ChildNodes.Add(arbNode)
If xmlItem.HasChildNodes Then CargarXmlArbol(xmlItem, arbNode)
If arbNode.Depth < 2 Then arbNode.Expand()
End If
Next
End If
End Sub
En una pagina de busqueda, se cargan los datos para realizar un filtrado, una vez que se hace obtengo un conjunto xml que corresponden a un cliente determinado.
El xml contiene información de varias tablas de la base de datos (ventas del cliente, etc) y lo muestro en un treeview, y aqui está el problema, cuando se carga el treeview la pagina tarda mucho (la primera vez) y luego de la primera vez, tarda 4 veces mas en cargar el treeview (probando con el mismo cliente por lo que el conjunto de datos es el mismo). Interpreto que no esta desechando los datos y por lo tanto se carga el navegador y provoca la demora. El treeview es arbCliente.
El proceso que uso para cargar el treeview es el siguiente
Private Sub CargarXmlArbol(ByVal xmlConci As XmlNode, Optional ByVal nod As TreeNode = Nothing)
If nod Is Nothing Then
arbCliente.Nodes.Clear()
Dim nodoRaiz As New TreeNode("Detalles", "0")
arbCliente.Nodes.Add(nodoRaiz)
CargarXmlArbol(xmlConci, nodoRaiz)
nodoRaiz.Expand()
Else
For Each xmlItem As XmlNode In xmlConci.ChildNodes
If xmlItem.NodeType = XmlNodeType.Element Then
Dim arbNode As New TreeNode
arbNode.Text = xmlItem.Name
arbNode.Value = xmlItem.Value
If xmlItem.HasChildNodes AndAlso xmlItem.FirstChild.NodeType = XmlNodeType.Text Then arbNode.Text += " : " + xmlItem.FirstChild.Value.ToString
nod.ChildNodes.Add(arbNode)
If xmlItem.HasChildNodes Then CargarXmlArbol(xmlItem, arbNode)
If arbNode.Depth < 2 Then arbNode.Expand()
End If
Next
End If
End Sub
Valora esta pregunta


0