zoukankan      html  css  js  c++  java
  • 点滴积累【C#】---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 }
  • 相关阅读:
    位运算与乘除运算的对照实验
    【字符串处理算法】字符串包括的算法设计及C代码实现
    语音识别及其应用出现“井喷式”发展
    UVA 10888
    SDUT 1500-Message Flood(set)
    string字符串常量池在内存中的位置
    6、jeecg 笔记之 自定义excel 模板导出(一)
    5、jeecg 笔记之 minidao 条件判断
    4、jeecg 笔记之 自定义显示按钮 (exp 属性)
    3、jeecg 笔记之 模糊查询
  • 原文地址:https://www.cnblogs.com/xinchun/p/3461661.html
Copyright © 2011-2022 走看看