Bom dia pessoal.
Estou com um problema e gostaria de saber se alguem aqui poderia me dar uma luz.
Tenho um treeview onde uso uma rotina que faz um select no SQL e me retorna uma DataTable (dt) e, usando esse dt, eu monto os nós do treeview, conforme o código abaixo:
For i = 0 To dt.Rows.Count - 1
sRef2 = Trim(dt.Rows.Item(i).Item(0))
sTitulo = Trim(dt.Rows.Item(i).Item(1))
sFuncao = Trim(dt.Rows.Item(i).Item(2))
sCodFnc = Trim(dt.Rows.Item(i).Item(3))
sCodNode = Trim(dt.Rows.Item(i).Item(4))
sStringMDI = Trim(dt.Rows.Item(i).Item(5))
nNivel = sRef2.Length
If sRef2.Length = 5 Then
Dim child As New TreeNode() With {.Text = sTitulo, .Target = sFuncao, .Value = sStringMDI}
nNivel1 += 1 : nNivel2 = -1 : nNivel3 = -1 : nNivel4 = -1 : nNivel5 = -1
TreeView1.Nodes.AddAt(nNivel1, child)
End If
If sRef2.Length = 8 Then
Dim node = New TreeNode() With {.Text = sTitulo, .Target = sFuncao, .Value = sStringMDI}
TreeView1.Nodes(nNivel1).ChildNodes.Add(node)
nNivel2 += 1 : nNivel3 = -1 : nNivel4 = -1 : nNivel5 = -1
End If
If sRef2.Length = 11 Then
Dim node = New TreeNode() With {.Text = sTitulo, .Target = sFuncao, .Value = sStringMDI}
TreeView1.Nodes(nNivel1).ChildNodes(nNivel2).ChildNodes.Add(node)
nNivel3 += 1 : nNivel4 = -1 : nNivel5 = -1
End If
If sRef2.Length = 14 Then
Dim node = New TreeNode() With {.Text = sTitulo, .Target = sFuncao, .Value = sStringMDI}
TreeView1.Nodes(nNivel1).ChildNodes(nNivel2).ChildNodes(nNivel3).ChildNodes.Add(node)
nNivel4 = nNivel4 + 1 : nNivel5 = -1
End If
If sRef2.Length = 17 Then
Dim node = New TreeNode() With {.Text = sTitulo, .Target = sFuncao, .Value = sStringMDI}
TreeView1.Nodes(nNivel1).ChildNodes(nNivel2).ChildNodes(nNivel3).ChildNodes(nNivel4).ChildNodes.Add(node)
nNivel5 += 1
End If
Next
Até aí tudo perfeito.
Alguns dos Treeviews que eu monto chegam a ter até 5 níveis de nós e mais de 80 itens no total.
Tenho uma rotina no SelectedNodeChanced que uso para me redirecionar para a página que este nó representa no programa, conforme abaixo:
Response.Redirect(Trim(TreeView1.SelectedNode.Target) & ".aspx")
E essa rotina também funciona de uma forma ok, até me deparar com o seguinte problema.
Digamos que em um nível de nó eu tenha 7 itens (ADM001, ADM002, ....., ADM007). Se eu clicar no ADM001 ele me redireciona para a página ADM001.apsx, a mesma coisa com o ADM002, que me redireciona para o ADM002.aspx. O mesmo para o ADM006 e o ADM007.
Agora, por algum motivo que eu não consigo entender, as páginas de 003 até 005 são redirecionadas para o ADM002.
Eu testei isso com várias tabelas diferentes e todas apresentam o mesmo problema.
Será que algum abençoado aqui poderia me iluminar?
Obrigado