zoukankan      html  css  js  c++  java
  • DropDownList中显示无限级树形结构

    效果图:

    数据库表:

    DirID:目录的ID,ParentID:目录的父路径ID,Name:目录的名字
    主要代码:

    DropDownList中显示无限级树形结构 - kewangwu - kewangwu的博客
    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Data.SqlClient;

    public partial class DropdownlistTree : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    if (!IsPostBack)
    {
    DataTable datatable = this.GetDataTable();
    DataRow[] row = datatable.Select("ParentID='-1'");
    //添加根目录
    ListItem li = new ListItem(row[0]["Name"].ToString());
    DropDownList1.Items.Add(li);
    addOtherDll("", Convert.ToInt32(row[0]["DirID"]), datatable,1);
    }
    }
    /**//// <summary>
    /// 添加其他节点
    /// </summary>
    /// <param name="Pading">空格</param>
    /// <param name="DirId">父路径ID</param>
    /// <param name="datatable">返回的datatable</param>
    /// <param name="deep">树形的深度</param>
    private void addOtherDll(string Pading, int DirId, DataTable datatable,int deep)
    {
    DataRow[] rowlist=datatable.Select("ParentID='"+DirId+"'");
    foreach (DataRow row in rowlist)
    {
    string strPading = "";
    for (int j = 0; j < deep; j++)
    {
    strPading += " "; //用全角的空格
    }
    //添加节点
    ListItem li = new ListItem(strPading + "|--" + row["Name"].ToString());
    DropDownList1.Items.Add(li);
    //递归调用addOtherDll函数,在函数中把deep加1
    addOtherDll(strPading,Convert.ToInt32(row["DirID"]), datatable,deep+1);
    }
    }
    /**//// <summary>
    /// 从数据库中读取数据返回datatable
    /// </summary>
    /// <returns></returns>
    private DataTable GetDataTable()
    {
    SqlConnection conn = newSqlConnection(ConfigurationManager.ConnectionStrings["Personal"].ConnectionString);
    SqlDataAdapter adp = new SqlDataAdapter("select * from Test", conn);
    DataSet datset = new DataSet();
    conn.Open();
    adp.Fill(datset, "Test");
    return datset.Tables[0];
    }
    }

    当然,当读取DropDownList时若要去除"|--"和空格可以调用addOtherDll.SelectValue().Replace("|--","").Trim()

  • 相关阅读:
    【BZOJ 3569】DZY Loves Chinese II
    【POJ3155】生活的艰辛Hard Life
    【SGU194】Reactor Cooling
    Elasticsearch 6.1.2 搭建及使用教程一
    Centos7安装Mysql-最方便、最快捷
    Realm_King 之 .NET 打包详细教程(A)
    C#程序员经常用到的10个实用代码片段
    使用VS2010再装VS2013不用再烦恼不兼容
    表变量和临时表的使用
    golang连接ftp服务器
  • 原文地址:https://www.cnblogs.com/soundcode/p/3850809.html
Copyright © 2011-2022 走看看