zoukankan      html  css  js  c++  java
  • 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);
                }
            }
        }
    }

  • 相关阅读:
    js事件的一些兼容写法
    js数据劫持 Object.defineProperty() 作用
    Java并发编程(三):ReentrantLock
    Idea使用插件实现逆向工程搭建SpringBoot项目
    Java并发编程(二):volatile关键字
    Java并发编程(一):线程基础知识以及synchronized关键字
    Docker快速上手之部署SpringBoot项目
    JVM基础快速入门篇
    linq 多表分组左连接查询查询统计
    Expression表达式目录树
  • 原文地址:https://www.cnblogs.com/zhycyq/p/3437165.html
Copyright © 2011-2022 走看看