zoukankan      html  css  js  c++  java
  • 无限级treeview设计 GO


    无限级treeview设计

    数据库设计


    aspx页面如下

    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        
    <title>无限级树</title>
    </head>
    <body>
        
    <form id="form1" runat="server">
        
    <div>
            
    <asp:TreeView ID="TreeView1" runat="server" ImageSet="BulletedList3" ShowLines="True">
            
    </asp:TreeView>
        
        
    </div>
        
    </form>
    </body>
    </html>
    代码如下:
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Text;
    using System.Data.SqlClient;

    public partial class _Default : System.Web.UI.Page
    {

        
        
    protected void Page_Load(object sender, EventArgs e)
        {
            
    if (!this.IsPostBack)
            {
                
    this.buildTree();
            }
        }

        
    /// <summary>
        
    /// 创建树
        
    /// </summary>
        private void buildTree()
        {

            DataSet ds 
    = ExecuteDataSet("select * from treetest");

            
    //建立关系
            ds.Relations.Add("SortRelation", ds.Tables[0].Columns["treeid"], ds.Tables[0].Columns["treeparentid"]);

            
    //遍历每行并根据数据行关系生成树
            foreach (DataRow dbRow in ds.Tables[0].Rows)
            {
                
    if (dbRow.IsNull("treeparentid"))
                {
                    
    string s = dbRow["treename"].ToString();
                    TreeNode tn 
    = new TreeNode(s);
                    tn.NavigateUrl 
    = "#";
                    
    this.TreeView1.Nodes.Add(tn);
                    PopulateSubTree(dbRow, tn);

                }
            }

             
        }

        
    /// <summary>
        
    /// 遍历子类
        
    /// </summary>
        
    /// <param name="dbRow">遍历的Row</param>
        private void PopulateSubTree(DataRow dbRow, TreeNode tn)
        {
           
            
    foreach (DataRow childRow in dbRow.GetChildRows("SortRelation"))
            {
                
    string s = "";

                s 
    = childRow["treename"].ToString();
                TreeNode tn2
    =new TreeNode(s);
                tn.ChildNodes.Add(tn2);
           
                PopulateSubTree(childRow, tn2);
            }
        }


        
    #region  返回dataset对象
        
    /// <summary>
        
    /// 返回dataset对象
        
    /// </summary>
        
    /// <param name="sql">sql语句</param>
        
    /// <returns></returns>
        public DataSet ExecuteDataSet(string sql)
        {
            SqlConnection con 
    = new SqlConnection("server=.;database=treeviewtest;uid=sa;pwd=;");
            DataSet ds 
    = new DataSet();
            SqlDataAdapter sda 
    = new SqlDataAdapter(sql, con);
            sda.Fill(ds);
            
    return ds;
        }
        
    #endregion
    }


    显示结果

  • 相关阅读:
    【CF741D】Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths(dsu on tree)
    【CF600E】Lomsat gelral(dsu on tree)
    【Vijos】lxhgww的奇思妙想(长链剖分)
    【HDOJ6586】String(枚举)
    【HDOJ6578】Blank(DP)
    【HDOJ6583】Typewriter(SAM,DP)
    JAVA 集合 List 分组的两种方法
    HashMap的实现原理
    HashMap, HashTable, CurrentHashMap的区别
    java ThreadLocal(应用场景及使用方式及原理)
  • 原文地址:https://www.cnblogs.com/askyes/p/874848.html
Copyright © 2011-2022 走看看