miércoles, 13 de enero de 2016

Llenar el TreeVew de ASP.NET con tabla Base de Datos


La tabla en SQL Server  consta de 3 columnas principales
idNodo es la PK
Nodo  es el  texto o  descripción del nodo
idNodoPadre es el  nodo  del que se desprende el nodo hijo.


 protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                int total = Convert.ToInt32(u.ObtenValor("Select MAX(idNodo) from TreeView"));
                for (int i = 0; i < total; i++)
                {
                    string sql = "Select idNodo,Nodo from TablaTreeviews where idNodoPadre=" + i + " order by idNodo";
                    SqlDataReader r;
                    r = con.Reg(sql);
                    while (r.Read())
                    {
                        if (i == 0)
                        {
                            TreeView.Nodes.Add(new TreeNode(r["Nodo"].ToString().Trim(), r["idNodo"].ToString().Trim()));
                        }
                        else
                        {
                            TreeNode nodo = BuscarNodo(TreeView.Nodes, i.ToString());
                            nodo.ChildNodes.Add(new TreeNode(r["Nodo"].ToString().Trim(), r["idNodo"].ToString().Trim()));
                        }
                    }
                }
            }
        }

        TreeNode BuscarNodo(TreeNodeCollection collec, string value)
        {
            TreeNode nodo = new TreeNode();
            for (int i = 0; i < collec.Count; i++)
            {
                if (collec[i].Value.Equals(value))
                    return nodo = collec[i];
                else
                {
                    if (collec[i].ChildNodes.Count>0)
                    nodo = BuscarNodo(collec[i].ChildNodes, value);
                    if (nodo.Value.Equals(value)) return nodo;
                }
            }
            return nodo;
        }

Encuentra la clase conexión aquí

No hay comentarios.:

Publicar un comentario