• asp.net treeview


    数据库驱动的asp.net treeview

    之前给研究生部网站做后台时用到了一个基于js和asp 的treeview,可能我比较菜,当时为了实现它并能够根据不同用户权限显示不同菜单,调试了老半天。

    前段时间给学校做了一个研究生选宿舍的小程序,用asp.net 做的,顺便做了个基于数据库驱动的treeview,当然也参考了这里的一些思想。总之就是

    一个递归的过程,支持无限级分类。

    nodestable表结构

    NodeID(节点ID) NodeName(节点名称) Link(节点超链接) ParentID(父节点ID)

    代码如下。有时间再加上权限的控制.

    public partial class _Default : System.Web.UI.Page
    {
        private DataView dataview = null;   
        protected void Page_Load(object sender, EventArgs e)
        {
            SqlConnection conn = new
                   SqlConnection(ConfigurationManager.ConnectionStrings["nodestable"].ConnectionString);
            SqlCommand cmd = new SqlCommand("select * from nodestable", conn);
            SqlDataAdapter sda = new SqlDataAdapter();
            sda.SelectCommand = cmd;
            DataSet ds = new DataSet();
            sda.Fill(ds, "nodestable");
            dataview = ds.Tables["nodestable"].DefaultView;
            conn.Close();
            AddTree(-1, (TreeNode)null);
            //-------------------------------------------------
            
        }
        public void AddTree(int parentId, TreeNode pNode)
        {
            dataview.RowFilter = "parentId=" + parentId;
            foreach (DataRowView row in dataview)
            {
                TreeNode Node = new TreeNode();
                if (pNode == null)
                {
                    Node.Text = "<a href='" + row["Link"].ToString() + "' target='mainfrm'>" + row["NodeName"].ToString() + "</a>";
                    Node.Value = row["NodeID"].ToString();
                    mytreeview.Nodes.Add(Node);
                    Node.Expanded = true;
                    AddTree(Int32.Parse(row["NodeId"].ToString()), Node);
                }
                else
                {
                    Node.Text = "<a href='"+row["Link"].ToString()+"' target='mainfrm'>" + row["NodeName"].ToString() + "</a>";
                    Node.Value = row["NodeID"].ToString();
                    pNode.ChildNodes.Add(Node);
                    Node.Expanded = true;
                    AddTree(Int32.Parse(row["NodeID"].ToString()), Node);
                }
            }
        }
    }

  • 相关阅读:
    管理心理学[9095]
    汽车文化[1196]
    小四轴——空心杯电机引起的电源干扰
    38 时序电路扩展2
    37 时序电路扩展1
    36 时序电路的动态特性分析2
    35 时序电路的动态特性分析1
    34 同步时序电路的设计方法2
    33 同步时序电路的设计方法1
    60. 第k个排列
  • 原文地址:https://www.cnblogs.com/zhycyq/p/3437165.html
Copyright © 2020-2023  润新知