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()

  • 相关阅读:
    Running ASP.NET Applications in Debian and Ubuntu using XSP and Mono
    .net extjs 封装
    ext direct spring
    install ubuntu tweak on ubuntu lts 10.04,this software is created by zhouding
    redis cookbook
    aptana eclipse plugin install on sts
    ubuntu open folderpath on terminal
    ubuntu install pae for the 32bit system 4g limited issue
    EXT Designer 正式版延长使用脚本
    用 Vagrant 快速建立開發環境
  • 原文地址:https://www.cnblogs.com/soundcode/p/3850809.html
Copyright © 2011-2022 走看看