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:
revisa los cuantos hijos tiene cada nivel 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
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
Cita:
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 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
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
Cita:
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. 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
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
Gracias de antemano