private void MostrarOpciones(int codigoPerfil) { trvOpciones.Nodes.Clear(); var perfilOpcionInfo = new Opcion().Listar(0); var perfilOpcionInfo_ = new PerfilOpcion().Listar(codigoPerfil); var opcionPadrelista = (from opcionPadre in perfilOpcionInfo where opcionPadre.OpcionPadreId == 0 select opcionPadre); var opcionPadrelista_ = (from opcionPadre in perfilOpcionInfo_ where opcionPadre.OpcionPadreId == 0 select opcionPadre); foreach (OpcionInfo filaPadre in opcionPadrelista) { var padreId = filaPadre.OpcionId; var masterNode = new TreeNode(filaPadre.Nombre, Convert.ToString(filaPadre.OpcionId)); if (opcionPadrelista_.Where(o => o.OpcionId.Equals(padreId)).ToList().Count > 0) { if (opcionPadrelista_.First(o => o.OpcionId.Equals(padreId)).Activo > 0) { masterNode.Checked = true; } } // masterNode.Checked = true; trvOpciones.Nodes.Add(masterNode); int hijos = perfilOpcionInfo.Where(h => h.OpcionPadreId == padreId).ToList().Count; int contador = 0; foreach (OpcionInfo filaHijo in (from opcionHijo in perfilOpcionInfo where opcionHijo.OpcionPadreId == padreId select opcionHijo).OrderBy(o => o.Orden)) { var childNode = new TreeNode(filaHijo.Nombre, Convert.ToString(filaHijo.OpcionId)); //if (filaHijo.Activo == 1) //{ // childNode.Checked = true; // contador += 1; //} //else //{ // childNode.Checked = false; //} childNode.Value = Convert.ToString(filaHijo.OpcionId); if (perfilOpcionInfo_.Where(o => o.OpcionId.Equals(filaHijo.OpcionId)).ToList().Count > 0) { if (perfilOpcionInfo_.First(o => o.OpcionId.Equals(filaHijo.OpcionId)).Activo > 0) { childNode.Checked = true; } } masterNode.ChildNodes.Add(childNode); } //if (hijos > contador) //{ // masterNode.Checked = false; //} } //var perfilOpcionInfo = new PerfilOpcion().Listar(codigoPerfil); //var opcionPadrelista = (from opcionPadre in perfilOpcionInfo where opcionPadre.OpcionPadreId == 0 select opcionPadre); //foreach (PerfilOpcionInfo filaPadre in opcionPadrelista) //{ // var padreId = filaPadre.OpcionId; // var masterNode = new TreeNode(filaPadre.Nombre, Convert.ToString(filaPadre.OpcionId)); // masterNode.Checked = true; // trvOpciones.Nodes.Add(masterNode); // int hijos = perfilOpcionInfo.Where(h => h.OpcionPadreId == padreId).ToList().Count; // int contador = 0; // foreach (PerfilOpcionInfo filaHijo in (from opcionHijo in perfilOpcionInfo where opcionHijo.OpcionPadreId == padreId select opcionHijo).OrderBy(o => o.Orden)) // { // var childNode = new TreeNode(filaHijo.Nombre, Convert.ToString(filaHijo.OpcionId)); // if (filaHijo.Activo == 1) // { // childNode.Checked = true; // contador += 1; // } // else // { // childNode.Checked = false; // } // childNode.Value = Convert.ToString(filaHijo.OpcionId); // masterNode.ChildNodes.Add(childNode); // } // if (hijos > contador) // { // masterNode.Checked = false; // } //} trvOpciones.ExpandAll(); }