• TreeView绑定数据库数据


    TreeView控件可以通过递归方式绑定数据库数据,代码如下:

        void Page_Load()
        {
            if (!Page.IsPostBack)
                PopulateTreeView();
        }

        private void PopulateTreeView()
        {
            DataTable treeViewData = GetTreeViewData();
            AddTopTreeViewNodes(treeViewData);  //绑定父节点
        }

        private DataTable GetTreeViewData()    //获取数据
        {
            string selectCommand = "SELECT MessageId,ParentId,Subject FROM Discuss";
            string conString = WebConfigurationManager.ConnectionStrings["Discuss"].ConnectionString;
            SqlDataAdapter dad = new SqlDataAdapter(selectCommand, conString);
            DataTable dtblDiscuss = new DataTable();
            dad.Fill(dtblDiscuss);
            return dtblDiscuss;
        }

        private void AddTopTreeViewNodes(DataTable treeViewData)
        {
            DataView view = new DataView(treeViewData);
            view.RowFilter = "ParentID IS NULL";
            foreach (DataRowView row in view)
            {
                TreeNode newNode = new TreeNode(row["Subject"].ToString(), row["MessageId"].ToString());
                TreeView1.Nodes.Add(newNode);
                AddChildTreeViewNodes(treeViewData, newNode);//绑定子节点
            }

        }

        private void AddChildTreeViewNodes(DataTable treeViewData, TreeNode parentTreeViewNode)
        {
            DataView view = new DataView(treeViewData);
            view.RowFilter = "ParentID=" + parentTreeViewNode.Value;
            foreach (DataRowView row in view)
            {
                TreeNode newNode = new TreeNode(row["Subject"].ToString(), row["MessageId"].ToString());
                parentTreeViewNode.ChildNodes.Add(newNode);
                AddChildTreeViewNodes(treeViewData, newNode);//递归,绑定子节点
            }
        }

    数据表中记录通过ParentId字段指定父节点。

    详细介绍可以参考:《ASP.NET2.0揭秘卷1》

     树节点TreeNode的重要属性:

    Text:节点显示内容

    Value:节点对应值

    NavigateUrl:导航页面Url

    Target:目标框架

    ImageUrl:节点图像

  • 相关阅读:
    Redis 的安装
    oracle表分区
    HashMap、HashTable、LinkedHashMap和TreeMap用法和区别
    HashMap和LinkedHashMap区别
    SpringMVC MultiActionController 默认方法名解析器
    静态资源无法访问问题
    JMeter-简单控制器
    JMeter-随机顺序控制器
    JMeter-随机控制器
    JMeter-交替控制器
  • 原文地址:https://www.cnblogs.com/zhouhb/p/2346521.html
Copyright © 2020-2023  润新知