TreeView读取数据库

效果:

数据库:

思路:

利用for遍历,然后创建父节点,再根据父节点创建出子节点。

代码:

复制代码
  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Web;
  5 using System.Web.UI;
  6 using System.Web.UI.WebControls;
  7 using System.Data;
  8 using System.Collections;
  9 using System.Configuration;
 10 using System.Data.SqlClient;
 11 
 12 
 13 
 14 namespace TreeView
 15 {
 16     public partial class TreeView : System.Web.UI.Page
 17     {
 18         string connection = ConfigurationManager.ConnectionStrings["SQLconnection"].ToString();
 19         protected void Page_Load(object sender, EventArgs e)
 20         {
 21             select();
 22             CreateTree();
 23         }
 24         DataSet ds = new DataSet();
 25         public DataSet DataS(string sql, string tablename)
 26         {
 27             SqlConnection con = new SqlConnection(connection);
 28             SqlDataAdapter sqlda = new SqlDataAdapter(sql, con);
 29             sqlda.Fill(ds, tablename);
 30             return ds;
 31         }
 32 
 33         //ParentMenu:父节点,
 34         //Grade:标识这是第几级节点,
 35         //Flag:标识是不是尾结点,1是 0 不是,
 36         //href:指向的链接
 37         public void select()
 38         {
 39             string sql = "select * from treeview";
 40             ds = DataS(sql, "test");
 41         }
 42 
 43         public void CreateTree()
 44         {
 45             try
 46             {
 47                 DataTable dt = ds.Tables["test"];
 48                 SortedList sl = new SortedList();
 49                 TreeNode tn = new TreeNode();
 50                 if (dt.Rows.Count <= 0)
 51                 {
 52                     tn.Text = "";
 53                     tn.Value = "";
 54                     tn.NavigateUrl = "";
 55                     tn.Target = "";
 56                     tn.Expanded = false;
 57                     tn.SelectAction = TreeNodeSelectAction.SelectExpand;
 58 
 59                 }
 60                 else
 61                 {
 62                     for (int i = 0; i < dt.Rows.Count; i++)
 63                     {
 64                         //创建父节点
 65                         if (dt.Rows[i]["Grade"].ToString() == "1")
 66                         {
 67                             TreeNode node = new TreeNode();
 68                             node.Text = dt.Rows[i]["MenuName"].ToString();
 69                             node.Value = dt.Rows[i]["MenuID"].ToString();
 70                             if (dt.Rows[i]["Flag"].ToString() == "1")
 71                             {
 72                                 node.NavigateUrl = dt.Rows[i]["href"].ToString();
 73                                 tn.Target = "_bank";
 74                             }
 75                             node.Expanded = false;
 76                             node.SelectAction = TreeNodeSelectAction.Expand;
 77                             sl.Add(node.Value, node);
 78                             tv_Method.Nodes.Add(node);
 79                         }
 80                         else
 81                         {
 82                             //查找父节点
 83                             TreeNode ParentNod = (TreeNode)sl.GetByIndex(sl.IndexOfKey(dt.Rows[i]["ParentMenu"].ToString()));
 84                             //创建子节点
 85                             TreeNode tnChild = new TreeNode();
 86                             tnChild.Text = dt.Rows[i]["MenuName"].ToString();
 87                             tnChild.Value = dt.Rows[i]["MenuID"].ToString();
 88                             if (dt.Rows[i]["Flag"].ToString() == "1")
 89                             {
 90                                 tnChild.NavigateUrl = dt.Rows[i]["href"].ToString();
 91                                 tnChild.Target = "_bank";
 92                             }
 93                             tnChild.Expanded = false;
 94                             tnChild.SelectAction = TreeNodeSelectAction.Expand;
 95                             sl.Add(tnChild.Value, tnChild);
 96                             ParentNod.ChildNodes.Add(tnChild);
 97                         }
 98                     }
 99                 }
100             }
101             catch (Exception ex)
102             {
103                 throw ex;
104             }
105         }
106     }
107 }
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值