Usuário com melhor resposta
Preencher Treeview

Pergunta
-
Possuo uma treeview que vai possuir 4 level (Permissao1,Permissao2,Permissao3,Permissao4) sendo cada um desse uma tabela do banco..
Para preencher o nivel 1 e 2 usei o seguinte codigo:
Mas o problema esta para preencher o level 3 e 4 não consigo..tentei utiliza um codigo parecido mais naum dah certo..c alguem puder m ajudar agradeço e muito!!//Carrega os 4 niveis de permissões DataTable DtPermissao1 = grupo.Permissao1(); DataTable DtPermissao2 = grupo.Permissao2(); DataTable DtPermissao3 = grupo.Permissao3(); DataTable DtPermissao4 = grupo.Permissao4(); //TreeView Permissao1 foreach (DataRow dataRowPermi1 in DtPermissao1.Rows) { if (!treeViewPermissao.Nodes.Contains(treeViewPermissao.Nodes[dataRowPermi1["CODPERMISSAO"].ToString()])) { treeViewPermissao.Nodes.Add(dataRowPermi1["CODPERMISSAO"].ToString(), dataRowPermi1["CODPERMISSAO"].ToString() + " – " + dataRowPermi1["DESCRICAO1"].ToString()); } } foreach (DataRow dataRowPermi2 in DtPermissao2.Rows) { //NÓS DO TREEVIEW - ADICIONA NÓ PERMISSAO2 foreach (TreeNode TreeNode2 in treeViewPermissao.Nodes) { if (!TreeNode2.Nodes.Contains(TreeNode2.Nodes[dataRowPermi2["CODPERMI2"].ToString()])) { if (TreeNode2.Name == dataRowPermi2["CODPERMISSAO"].ToString()) { TreeNode2.Nodes.Add(dataRowPermi2["CODPERMI2"].ToString(), dataRowPermi2["CODPERMI2"].ToString() + " – " + dataRowPermi2["DESCRICAO2"].ToString()); } } } }
Respostas
Todas as Respostas
-
-
nao, eu tento preencher assim :
foreach (DataRow dataRowPermi3 in DtPermissao3.Rows) { //NÓS DO TREEVIEW - ADICIONA NÓ PERMISSAO3 foreach (TreeNode TreeNode3 in treeViewPermissao.Nodes) { if (!TreeNode3.Nodes.Contains(TreeNode3.Nodes[dataRowPermi3["CODPERMI3"].ToString()])) { if (TreeNode3.Name == dataRowPermi3["CODPERMI2"].ToString()) { TreeNode3.Nodes.Add(dataRowPermi3["CODPERMI3"].ToString(), dataRowPermi3["CODPERMI3"].ToString() + " – " + dataRowPermi3["DESCRICAO3"].ToString()); } } } }
-
segue algumas threads do forum com peguntas respodidas sobre o treeview:
http://social.msdn.microsoft.com/forums/pt-br/vscsharppt/thread/A819BAB0-A484-473D-8C56-D40B4017A18B
agora, um artigo muito bom com screens e um passo a passo de todas as funcionalidades do treeview. infelizmente é em VB.NET mas o artigo é muito bom e serve para entender o funcionamento:
http://vbtuga.blogspot.com/2009/12/vbnet-utilizando-o-controlo-treeview.html
mas, eu "realmente" recomendo usar recursividade para preencher o treeview. Aqui, tem um exemplo de treeview e recursividade:
-
Nesse caso é melhor você debuggar o código e ver se ele está passando nesse foreach, teoricamente é para funcionar, se não dar erro possivelmente ele não está passando por esse foreach.
Experimente colocar um try catch, para ver se retorna algum erro.
Mas é mais provavel que esse foreach não esteja sendo executado.
Elielson de Andrade elielson( a )gd.com.br www.despcompany.com www.emyface.com -
-
fiz um teste parecido e sem problemas.
veja se lhe ajuda
calc = new calculadora();
//preenche nivel 1
for (int i = 0; i < 3; i++)
{
treeView1.Nodes.Add("node" + i);
}
//preenche nivel 2
int o = 10;
foreach (TreeNode tr in treeView1.Nodes)
{
tr.Nodes.Add("node" + o);
o = o + 4;
}
//preenche nivel 3
foreach (TreeNode tr in treeView1.Nodes)
{
foreach (TreeNode tr2 in tr.Nodes)
{
tr2.Nodes.Add("nodexx");
}
} -