Apanhando - Recursão p/ Montar Treeview
-
quarta-feira, 10 de outubro de 2007 18:53Pessoal, meu problema é o seguinte...
To apanhando pra montar uma recursão para criar uma treeview.
Minha tabela:
Coluna1 | Coluna2 | Coluna3 | Coluna4 | Coluna5
---------------------------------------------------------------------------
Item1 | Item1.1 | Item1.1.1 | Item1.1.1.1 | Item1.1.1.1.1
Item1 | Item1.1 | Item1.1.1 | Item1.1.1.1 | Item1.1.1.1.2
Item1 | Item1.1 | Item1.1.1 | Item1.1.1.1 | Item1.1.1.1.3
Item1 | Item1.1 | Item1.1.1 | Item1.1.1.2 | Item1.1.1.2.1
Item1 | Item1.1 | Item1.1.1 | Item1.1.1.2 | Item1.1.1.2.2
Item1 | Item1.1 | Item1.1.2 | Item1.1.1.3 | Item1.1.1.3.1
Item1 | Item1.1 | Item1.1.2 | Item1.1.1.3 | Item1.1.1.3.2
Item1 | Item1.2 | Item1.2.1 | Item1.2.1.1 | Item1.2.1.1.1
Item1 | Item1.2 | Item1.2.2 | Item1.2.2.2 | Item1.2.2.2.1
Item2 | Item2.1 | Item2.1.1 | Item2.1.1.1 | Item2.1.1.1.1
Item2 | Item2.1 | Item2.1.1 | Item2.1.1.1 | Item2.1.1.1.2
Item2 | Item2.1 | Item2.1.1 | Item2.1.1.2 | Item2.1.1.2.1
Item2 | Item2.1 | Item2.1.1 | Item2.1.1.2 | Item2.1.1.2.2
Item2 | Item2.1 | Item2.1.2 | Item2.1.2.1 | Item2.1.2.1.1
Item2 | Item2.1 | Item2.1.2 | Item2.1.2.1 | Item2.1.2.1.2
Item2 | Item2.2 | Item2.2.1 | Item2.2.1.1 | Item2.2.1.1.1
Item2 | Item2.2 | Item2.2.1 | Item2.2.1.1 | Item2.2.1.1.2
RESULTADO:
+ Item1
| + Item1.1
| | + Item1.1.1
| | | + Item1.1.1.1
| | | | +Item1.1.1.1.1
| | | | +Item1.1.1.1.2
| | | | +Item1.1.1.1.3
| | | | |
| | | + Item1.1.1.2
| | | | +Item1.1.1.2.1
| | | | +Item1.1.1.2.2
| | | | |
| | + Item1.1.2
| | | + Item1.1.2.1
| | | | +Item1.1.2.1.1
| | | | +Item1.1.2.1.2
| | | | |
| | + Item1.1.2
| | | + Item1.1.2.1
| | | + Item1.1.2.2
| | | | |
| + Item1.2 |
| | + Item1.2.1
| | | + Item1.2.1.1
| | | | +Item1.2.1.1.1
| | | | |
| | + Item1.2.2
| | | + Item1.2.2.1
| | | | +Item1.2.2.1.1
| | | | |
+ Item2 | | |
| + Item2.1 |
| | + Item2.1.1
| | | + Item2.1.1.1
| | | | +Item2.1.1.1.1
| | | | +Item2.1.1.1.2
| | | + Item2.1.1.2
| | | | +Item2.1.1.2.1
| | | | +Item2.1.1.2.2
| | + Item2.1.2
| | | + Item2.1.2.1
| | | | +Item2.1.2.1.1
| | | | +Item2.1.2.1.2
| + Item2.2 |
| | + Item2.2.1
| | | + Item2.2.1.1
| | | | +Item2.2.1.1.1
| | | | +Item2.2.1.1.2
To apanhando igual um cachorro sem dono.
Cada linha da tabela é uma ramificação da TREEVIEW.
Ja fiz uma recursão pra isso antes mais a tabela estava no formado de COLUNA ID e COLUNA ID_PAI.
Mais dessa forma não estou conseguindo fazer de jeito nenhum.
Se alguma alma bondosa puder me ajudar eu agradeço muito.
[]'s
Henrique
Todas as Respostas
-
quarta-feira, 10 de outubro de 2007 21:44
Eu fiz um exemplo com DataSet e XML, nao sei se é isso que voce precisa mas da uma olhadinha talvez lhe ajude
http://cl1p.net/TreeNodeDataSetXML/
-
quinta-feira, 11 de outubro de 2007 12:28
Anselmo,
Muito obrigado pela resposta.
Concerteza ajudou muito. Não só ajudou como resolveu meu problema.
A sua sacada foi na Função:
private TreeNode retornatreenode(string titulo, TreeNodeCollection no)
{
foreach (TreeNode node in no)
{
if (node.Text == titulo)
return node;
}
return null;
}
O resto do algorito está muito semelhante ao que eu estava montando.
Muito obrigado mesmo! Acho que iria apanhar uma semana pra pensar nessa solução.
No meu caso eu ja tenho a query que monta essa tabela e carrega um DataTable, tornando bem mais simples podendo descartar a utilização de XML e de DataSet. Mas com certeza mais pra frente, em alguns projetos que tenho em vista essa montagem através de XML será muito útil.
Muito obrigado novamente.
Henrique.

