private void RecorrerRecursivo(TreeNode treeNode) { // Print the node. /*MessageBoxAdv.Show(treeNode.Text+" Nombre = "+treeNode.Name + * " Padre = "+ ((treeNode.Parent == null)?"Raiz": treeNode.Parent.Name) );*/ PuiSegAccesos ac = new PuiSegAccesos(db); ac.keySAcceso = cboPerfiles.SelectedValue.ToString(); ac.cmpIdNodo = treeNode.Name; ac.cmpIdPadre = (treeNode.Parent == null) ? "0" : treeNode.Parent.Name; ac.cmpAcceso = (treeNode.Checked == true) ? 1 : 0; if (Esnuevo == 1) { ac.AgregarAcceso(); } else { if (ac.ElRegistroEsNuevo() == 1) { ac.AgregarAcceso(); } else { ac.ActualizaAcceso(); } } // Print each node recursively. foreach (TreeNode tn in treeNode.Nodes) { RecorrerRecursivo(tn); } }
private void btnAsignaSeg_Click(object sender, EventArgs e) { CargarRegistrosDB(); PuiSegAccesos Ac = new PuiSegAccesos(db); Ac.keySAcceso = cboPerfiles.SelectedValue.ToString(); btnActualizaSeg.Enabled = true; btnAsignaSeg.Enabled = false; if (Ac.EsAccesoNuevo() == 1) { CrearArbol("0", null); tSeg.ExpandAll(); tSeg.Nodes[0].Checked = true; Esnuevo = 1; } else { Esnuevo = 0; CrearArbol("0", null); tSeg.ExpandAll(); //Recorrer el arbol y marcar el check conlos Accesos del perfil this.tSeg.AfterCheck -= new System.Windows.Forms.TreeViewEventHandler(this.tSeg_AfterCheck); MarcaRecursivo2(tSeg.Nodes[0], true); this.tSeg.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.tSeg_AfterCheck); } btnActualizaSeg.Enabled = true; }
private void MarcaRecursivo2(TreeNode n, bool chk) { //Preguntar el valor de acceso PuiSegAccesos ac = new PuiSegAccesos(db); ac.keySAcceso = cboPerfiles.SelectedValue.ToString(); ac.cmpIdNodo = n.Name; ac.cmpIdPadre = (n.Parent == null) ? "0" : n.Parent.Name; int Vacceso = ac.ValorDeAcceso(); //MessageBoxAdv.Show("Nodo " + ac.cmpIdNodo + " padre " + ac.cmpIdPadre + " Acceso " + Vacceso.ToString()); chk = (Vacceso == 1) ? true : false; n.Checked = chk; n.ForeColor = (n.Checked == true) ? Color.Green : Color.Red; foreach (TreeNode tn in n.Nodes) { MarcaRecursivo2(tn, chk); } }