elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Control TreeView
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Control TreeView  (Leído 15,949 veces)
elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: Control TreeView
« Respuesta #10 en: 1 Noviembre 2007, 23:26 pm »

exelente, mañana probare usar un datatalbe en lugar de dataset y luego lo comento, si funciona posteo el code.

Saludos



En línea

elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: Control TreeView
« Respuesta #11 en: 2 Noviembre 2007, 15:57 pm »

bueno, al fin. pude cargar el treeview. con exactamente el code q postiastes.
lo unico que me surgio un gran gran problema

al cargar los 7000 registros el tiempo de espera es alto
tarda aproximadamente 12 minutos, entre que hace las consultas revisa y carga.

no hay forma de guardar el control junto con sus datos de tal forma que cuando el usuario quiera ver el arbol no lo tenga que volver a cargar, sino simplemente cargar el control con los datos previamente cargados.


muchas gracias nuevamente


En línea

Hadess_inf
Desesperado
Colaborador
***
Desconectado Desconectado

Mensajes: 2.048


Nueva Vida


Ver Perfil WWW
Re: Control TreeView
« Respuesta #12 en: 2 Noviembre 2007, 16:58 pm »

Bueno no sabria decirte porque nunca he hecho algo parecido, pero podria sugerir que intentes un par de cosas.

Lo primero seria que ese formulario cuando no lo necesites no lo cierres, sino que lo ocultes, y cuando lo quieras usar nuevamente lo haces visible, con esto el treeview ya no tendria que llenarse cada vez que cargues el formulario.

Ocultar formulario
Citar
Form.hide()

Mostrar formulario
Citar
Form.show()
« Última modificación: 2 Noviembre 2007, 17:23 pm por hadess_inf » En línea

elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: Control TreeView
« Respuesta #13 en: 2 Noviembre 2007, 18:11 pm »

si, podria ser. pero el usuario no va a querer esperar 11 minutos desde un principio, y sin contar que los registros pueden aumentar un poco.

bueno, voy a tratar de buscar otra solucion. muchisimas gracias por tu ayuda hadess_inf
En línea

Hadess_inf
Desesperado
Colaborador
***
Desconectado Desconectado

Mensajes: 2.048


Nueva Vida


Ver Perfil WWW
Re: Control TreeView
« Respuesta #14 en: 2 Noviembre 2007, 21:01 pm »

Bueno claro que la cantidad de tiempo que demore en llenarse el control sera bastante, bueno todo eso depende del equipo en el cual se este trabajando(me refiero al hardware), aun asi, buscare una alternativa y vere si se puede agilizar ese proceso, saludos. Si encuentras una respuesta a tu problema posteala.
En línea

elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: Control TreeView
« Respuesta #15 en: 3 Noviembre 2007, 03:39 am »

Bueno hadess_inf, te cuento. Encontre la solucion al 100% de mi problema.
Hize lo siguiente:
En lugar de cargar todo el arbol al cargar el formulario, decidi solo cargar la raiz del arbol, osea, un solo item.
Luego si se quieren ver los que cuelgan del item se le hace doble click y se cargan los items del segundo nivel.
Si se queire ver lo que cuelga de alguno de esos items recien cargados, se le hace doble click. Y asi hasta llegar a donde quiera sin necesidad de cargar datos innesesarios que el usuario no va a mirar.

El tiempo es altamente importante en estas situaciones, el cual fue reducido a una respuesta casi instantanea en el peor de los casos.
El codigo esta muy interesante y es muy sencillo y la idea me la dio mi jefe cuando me dije: "Mostra lo que necesitas"

El lunes temprano posteo el codigo para que este disponible, ya que esta en el trabajo y no en mi casa.


Saludos y muchas gracias por tu colaboracion.
En línea

Hadess_inf
Desesperado
Colaborador
***
Desconectado Desconectado

Mensajes: 2.048


Nueva Vida


Ver Perfil WWW
Re: Control TreeView
« Respuesta #16 en: 3 Noviembre 2007, 06:25 am »

Es una buena salida..  :xD :xD :xD :xD
En línea

elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: Control TreeView
« Respuesta #17 en: 5 Noviembre 2007, 17:29 pm »

Lo prometido es deuda.

En el Load del formulario:

Código:
        Dim Host As String = "tuservidor"
        Dim con As New OleDb.OleDbConnection("Provider=SQLOLEDB; Data Source=" & Host & "; Initial Catalog=TuBase; integrated security=SSPI; persist security info=True;")

        Dim da As OleDb.OleDbDataAdapter
        Dim dtb As DataTable
        Dim a As Integer

        Dim Codigo As String

        da = New OleDb.OleDbDataAdapter("select * from dimtempcustomer where dimt_padre=''", con)
        dtb = New DataTable
        da.Fill(dtb)

        TreeView1.Nodes.Add(Trim("[" & dtb.Rows(a)("dimt_codigo").ToString) & "]-- " & Trim(dtb.Rows(0)("dimt_descripcion").ToString))
        Codigo = Trim(dtb.Rows(0)("dimt_codigo").ToString)

En el evento DoubleClick del TreeView:

Código:
Dim Host As String = "tuservidor"
        Dim con As New OleDb.OleDbConnection("Provider=SQLOLEDB; Data Source=" & Host & "; Initial Catalog=TuBase; integrated security=SSPI; persist security info=True;")

        Dim da As OleDb.OleDbDataAdapter
        Dim dtb As DataTable
        Dim a, i As Integer
        Static Cargados As String

        Dim Codigo, Descripcion As String
        Dim parte = Split(TreeView1.SelectedNode.Text, "]-- ")
        Dim flag = Split(Cargados, "--")

        Me.Cursor = Cursors.WaitCursor
        Codigo = Trim(Mid(parte(0), 2))

        For i = 1 To UBound(flag)
            If Codigo = flag(i) Then
                Me.Cursor = Cursors.Default
                Exit Sub
            End If
        Next
        Cargados += "--" & Codigo
        da = New OleDb.OleDbDataAdapter("select * from dimtempcustomer where dimt_padre='" & Codigo & "'", con)
        dtb = New DataTable
        da.Fill(dtb)

        For a = 0 To dtb.Rows.Count - 1
            Codigo = Trim(dtb.Rows(a)("dimt_codigo").ToString)
            Descripcion = Trim(dtb.Rows(a)("dimt_descripcion").ToString)

            TreeView1.SelectedNode.Nodes.Add("[" & Codigo & "]-- " & Descripcion)
        Next
        TreeView1.SelectedNode.Expand()
        Me.Cursor = Cursors.Default

Lo de la conexion se puede arreglar para que sea menos codigo.
Espero les sirva el codigo, le agradezco mucho a hadess_inf por responder mis preguntas.

Gracias.
En línea

gusman

Desconectado Desconectado

Mensajes: 43



Ver Perfil WWW
Re: Control TreeView
« Respuesta #18 en: 5 Noviembre 2007, 18:26 pm »

Usa TreeView1.BeginUpdate() antes de comenzar a actualizar el treeview y TreeView1.EndUpdate() cuando acabes, de esta forma evitas que se redibuje el control mientras estás añadiendo nuevos elementos.

Un saludo
En línea

No está muerto todo lo que yace y con extraños evos hasta la misma muerte puede morir.
elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: Control TreeView
« Respuesta #19 en: 5 Noviembre 2007, 19:08 pm »

Gracias gusman, ya agregue lo que me sugueriste :)

Saludos
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Treeview VB.net
Programación General
tazrebelraider 0 3,283 Último mensaje 28 Febrero 2012, 05:53 am
por tazrebelraider
treeview.index
.NET (C#, VB.NET, ASP)
luismercedesrd 1 2,060 Último mensaje 10 Junio 2016, 03:03 am
por AlbertoBSD
Seleccionar Nodo de Treeview « 1 2 »
Programación Visual Basic
jack06 10 6,992 Último mensaje 8 Mayo 2017, 21:11 pm
por jack06
Ayuda treeview
.NET (C#, VB.NET, ASP)
alexlopez91 1 2,285 Último mensaje 18 Agosto 2017, 00:23 am
por Hadess_inf
TreeView y FullPath
Programación Visual Basic
temisto 0 1,443 Último mensaje 13 Enero 2018, 22:48 pm
por temisto
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines