protected void PopulateNode(Object source, TreeNodeEventArgs e) { modelos = (SortedList<int, ModeloCompetencias>)Session["modelos"]; TreeNode node = e.Node; String[] paths = node.ValuePath.Split('|'); if (paths.Length == 4) { //expandir uma prática currModelo = modelos[int.Parse(paths[0])]; Pratica currPratica = currModelo.getFamilia(paths[1]).getCompetencia(paths[2]).getPratica(paths[3]); currPratica.loadPerguntas("JC"); foreach (Pergunta perg in currPratica.Perguntas.Values) { TreeNode n1 = new TreeNode(perg.Name, perg.PerguntaID.ToString()); node.ChildNodes.Add(n1); } } else if (paths.Length == 3) { //expandir uma competência currModelo = modelos[int.Parse(paths[0])]; Competencia currCompetencia = currModelo.getFamilia(paths[1]).getCompetencia(paths[2]); currCompetencia.loadPraticas("JC"); foreach (Pratica prat in currCompetencia.Praticas.Values) { TreeNode n1 = new TreeNode(prat.Name, prat.PraticaID.ToString()); //n1.PopulateOnDemand = true; node.ChildNodes.Add(n1); prat.loadPerguntas("JC"); if (prat.Perguntas.Count > 0) n1.PopulateOnDemand = true; } } else if (paths.Length == 2) { //expandir uma família currModelo = modelos[int.Parse(paths[0])]; FamiliaCompetencias currFamilia = currModelo.getFamilia(paths[1]); currFamilia.loadCompetencias("JC",null); foreach(Competencia comp in currFamilia.Competencias.Values) { TreeNode n1 = new TreeNode(comp.Name, comp.CompetenciaID.ToString()); //n1.PopulateOnDemand = true; node.ChildNodes.Add(n1); comp.loadPraticas("JC"); if (comp.Praticas.Count > 0) n1.PopulateOnDemand = true; } } else if (paths.Length == 1) { currModelo = modelos[int.Parse(node.Value)]; currModelo.loadFamilias("JC"); foreach (FamiliaCompetencias fam in currModelo.Familias.Values) { TreeNode n1 = new TreeNode(fam.Name, fam.FamiliaID.ToString()); //n1.PopulateOnDemand = true; node.ChildNodes.Add(n1); fam.loadCompetencias("JC",null); if (fam.Competencias.Count > 0) { n1.PopulateOnDemand = true; } } } Session["currModelo"] = currModelo; }