Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/05/2010, 09:53
roger1187
 
Fecha de Ingreso: marzo-2008
Mensajes: 286
Antigüedad: 16 años, 1 mes
Puntos: 1
Accordion con SQL SERVER

yo anteriormente cargue un un treeview desde una base de datos sql server

la tabla actividades contaba con los campos

ID Nombre IDDepen(que es el ID de su superior)

los codigos que usaba eran los siguientes

Carga los niveles padres
Cita:
Public Sub PopulateRootLevel(ByVal Val As TreeNodeCollection, ByVal CodSistema As String)
Dim objConn As MySqlConnection
objConn = New MySqlConnection(ConfigurationManager.ConnectionStr ings("ConnectionSigcol1").ConnectionString)
Dim cadena As String = "select cod_actividad, des_actividad,(select count(*) FROM actividad " _
& "WHERE cod_actividad_padre=sc.cod_actividad and cod_sistema = '" & CodSistema & "') childnodecount FROM actividad sc where cod_actividad_padre is null and cod_sistema = '" & CodSistema & "'"
Dim objCommand As New MySqlCommand(cadena, objConn)
Dim da As New MySqlDataAdapter(objCommand)
Dim dt As New DataTable()
da.Fill(dt)
PopulateNodes(dt, Val)
End Sub
revisa los cuantos hijos tiene cada nivel
Cita:
Private Sub PopulateNodes(ByVal dt As DataTable, ByVal nodes As TreeNodeCollection)
For Each dr As DataRow In dt.Rows
Dim tn As New TreeNode()
tn.Text = dr("des_actividad").ToString()
tn.Value = dr("cod_actividad").ToString()
tn.ToolTip = dr("cod_actividad").ToString
nodes.Add(tn)
tn.PopulateOnDemand = (CInt(dr("childnodecount")) > 0)
Next
End Sub
Carga los hijos y si es necesario vuelve a llaamr al sub de arriba si es que tiene hijos y se volveria llamar a este
Cita:
Public Sub PopulateSubLevel(ByVal parentid As String, ByVal parentNode As TreeNode, ByVal CodSistema As String)
Dim objConn As MySqlConnection
objConn = New MySqlConnection(ConfigurationManager.ConnectionStr ings("ConnectionSigcol1").ConnectionString)
Dim cadena As String = "select cod_actividad,des_actividad as des_actividad,(select count(*) FROM actividad " _
& "WHERE cod_actividad_padre=sc.cod_actividad and cod_sistema = '" & CodSistema & "') childnodecount FROM actividad sc where cod_actividad_padre=@cod_actividad_padre and cod_sistema = '" & CodSistema & "'"
Dim objCommand As New MySqlCommand(cadena, objConn)
objCommand.Parameters.Add("@cod_actividad_padre", MySqlDbType.VarChar).Value = parentid
Dim da As New MySqlDataAdapter(objCommand)
Dim dt As New DataTable()
da.Fill(dt)
PopulateNodes(dt, parentNode.ChildNodes)
End Sub
Este codigo me funciona a la perfeccion en un treeview, me gustaria saber si este codigo poder llevarlo a un Ajax ToolKit Accordion, o si hay 1 forma mas sencilla mejor, bajo la modalidad de ID,Nombre,IDDepen que cuenta mi tabla.

Gracias de antemano