• DropDrownList控件递归绑定数据


    现将表中的字段封装成属性:文件名(Demo_Area.cs)

    using System;
    using System.Data;
    using System.Configuration;
    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;

    /// <summary>
    ///Demo_Area 的摘要说明
    /// </summary>
    public class Demo_Area
    {
     public Demo_Area()
     {
      //
      //TODO: 在此处添加构造函数逻辑
      //
     }
        private int id;
        private string name;
        private int pid;

        public int Pid
        {
            get { return pid; }
            set { pid = value; }
        }

        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        public int Id
        {
            get { return id; }
            set { id = value; }
        }

    }

    页面中的代码段:

    using System;
    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 _Default : System.Web.UI.Page
    {

       //连接数据库
        private static string connstr = System.Configuration.ConfigurationManager.ConnectionStrings["ConnStr"].ToString();
        private static int intFlag;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
                return;
            Demo_Area da = new Demo_Area();
            da.Pid = 0;
            BindCountry(da);

        }
       
        #region 递归绑定国家和地区
        private void BindCountry(Demo_Area parma)
        {
            DataSet ds = BindCity(parma);
            if (ds.Tables[0].Rows.Count <= 0)
                return;
            intFlag++;
            int i = 0;
            for (; i < ds.Tables[0].Rows.Count; i++)
            {
                Demo_Area area = new Demo_Area();
                area.Name = ds.Tables[0].Rows[i]["Name"].ToString();
                area.Id = Convert.ToInt32(ds.Tables[0].Rows[i]["Id"].ToString());
                BindDDL(area);
                area.Pid = Convert.ToInt32(ds.Tables[0].Rows[i]["Id"].ToString());
                BindCountry(area);
            }
            if (ds.Tables[0].Rows.Count <= i)
                intFlag--;
        }
        #endregion

        #region 绑定DropDrownList
        private void BindDDL(Demo_Area parma)
        {
            string temp = "";
            for (int i = 0; i < intFlag - 2; i++)
            {
                temp += " ┃";
            }
            if (intFlag != 1)
                temp += " ┣";
            temp += parma.Name;
            DropDownList1.Items.Add(new ListItem(temp, parma.Id.ToString()));

        }
        #endregion

        #region  查询数据并返回一张虚拟表
        private DataSet BindCity(Demo_Area param)
        {
            SqlConnection con = new SqlConnection(connstr);
            con.Open();
            string strSQL = "select * from Area_MS where Pid=" + param.Pid;
            SqlDataAdapter sda = new SqlDataAdapter(strSQL, con);
            DataSet ds = new DataSet();
            sda.Fill(ds);
            return ds;
        }

        #endregion

    效果图:

  • 相关阅读:
    堆栈信息分析
    JVM垃圾回收日志结构分析
    grep -n 显示行号
    Zabbix报告无交换内存主机 Lack of free swap space on xxxxx
    Zabbix利用msmtp+mutt发送邮件报警
    Nginx开启Gzip压缩大幅提高页面加载速度
    rsync --exclude 参数
    zabbix 监控客户端数据库 zabbix客户端
    centos 截图命令 screenshot
    centos下安装五笔输入法的教程
  • 原文地址:https://www.cnblogs.com/_ymw/p/YMW.html
Copyright © 2020-2023  润新知