zoukankan      html  css  js  c++  java
  • ASP.NET实现下拉框二级联动组件

    namespace WebApplicationDlh
    {
    using System;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    using Db;
    /// <summary>
    /// Area 的摘要说明。
    /// </summary>
    public class Area : System.Web.UI.UserControl
    {
    protected System.Web.UI.WebControls.DropDownList ddlProvince;
    protected System.Web.UI.WebControls.DropDownList ddlCity;
    public string strProvince
    {
    get
    {
    return ddlProvince.SelectedItem.Value;
    }
    set
    {
    ddlProvince.SelectedItem.Value = value;
    }
    }
    public string strCity
    {
    get
    {
    return ddlCity.SelectedItem.Value;
    }
    set
    {
    ddlCity.SelectedItem.Value = value;
    }
    }
    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!IsPostBack)
    {
    ddlProvinceBind();
    ddlCity.Items.Insert(0,"-请选择城市-");
    }
    }
    private void ddlProvinceBind()
    {
    Db.Area myArea = new Db.Area();
    SqlDataReader dr = myArea.GetAllProvince();
    if(dr.Read())
    {
    ddlProvince.DataSource = dr;
    ddlProvince.DataTextField = "Province";
    ddlProvince.DataValueField = "Province";
    ddlProvince.DataBind();
    ddlProvince.Items.Insert(0,"-请选择省份-");
    }
    }
    #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器
    /// 修改此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    this.ddlProvince.SelectedIndexChanged += new System.EventHandler(this.ddlProvince_SelectedIndexChanged);
    this.Load += new System.EventHandler(this.Page_Load);
    }
    #endregion
    private void ddlProvince_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    if(ddlProvince.SelectedItem.Value == "-请选择省份-")
    {
    ddlCity.Items.Clear();
    ddlCity.Items.Insert(ddlProvince.SelectedIndex,"-请选择城市-");
    }
    else
    {
    Db.Area myArea = new Db.Area();
    SqlDataReader dr = myArea.GetAllCityWhereProvince(ddlProvince.SelectedItem.Value);
    if(dr.Read())
    {
    ddlCity.DataSource = dr;
    ddlCity.DataTextField = "City";
    ddlCity.DataValueField = "ID";
    ddlCity.DataBind();
    }
    }
    }
    }
    }

    =============================================================〉
    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Configuration;
    namespace Db
    {
    /// <summary>
    /// Area 的摘要说明。
    /// </summary>
    public class Area:Base
    {
    public Area()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }
    public SqlDataReader GetAllProvince()
    {
    strSp = "Sp_Area_SelectAll";
    drSelectAll(strSp);
    return dr;
    }
    public SqlDataReader GetAllCityWhereProvince(string a)
    {
    conn = new SqlConnection(ConfigurationSettings.AppSettings["dsn"]);
    cmd = new SqlCommand("Sp_Area_SelectAllWhereProvince",conn);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.Add("@Province",SqlDbType.VarChar,50).Value = a.ToString();
    conn.Open();
    dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
    return dr;
    }
    }
    }

    =====================================================〉
    if exists (select * from dbo.sysobjects where id = object_id(N’[dbo].[Sp_Area_SelectAll]’) and OBJECTPROPERTY(id, N’IsProcedure’) = 1)
    drop procedure [dbo].[Sp_Area_SelectAll]
    GO
    if exists (select * from dbo.sysobjects where id = object_id(N’[dbo].[Sp_Area_SelectAllWhereProvince]’) and OBJECTPROPERTY(id, N’IsProcedure’) = 1)
    drop procedure [dbo].[Sp_Area_SelectAllWhereProvince]
    GO
    if exists (select * from dbo.sysobjects where id = object_id(N’[dbo].[Area]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1)
    drop table [dbo].[Area]
    GO
    CREATE TABLE [dbo].[Area] (
    [ID] [int] NOT NULL ,
    [Province] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [City] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [其它] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
    ) ON [PRIMARY]
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_NULLS ON
    GO
    CREATE PROCEDURE Sp_Area_SelectAll
    AS
    SELECT DISTINCT Province
    FROM Area
    ORDER BY Province
    RETURN
    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_NULLS ON
    GO
    CREATE PROCEDURE Sp_Area_SelectAllWhereProvince
    @Province varchar(50)
    AS
    SELECT Area.*
    FROM Area
    WHERE (Province = @Province)
    RETURN
    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    SET ANSI_NULLS ON
    GO
    ================================================〉
    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Configuration; namespace Db
    {
    /// <summary>
    /// Base 的摘要说明。
    /// </summary>
    public class Base
    {
    public Base()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }
    protected string con = ConfigurationSettings.AppSettings["dsn"];
    protected SqlConnection conn;
    protected SqlCommand cmd;
    protected SqlDataReader dr;
    protected string strSp;
    protected SqlDataReader drSelectAll(string strSp)
    {
    conn = new SqlConnection(con);
    cmd = new SqlCommand(strSp,conn);
    cmd.CommandType = CommandType.StoredProcedure; conn.Open();
    dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
    return dr;
    }//返回一个SqlDataReader }
    }
  • 相关阅读:
    Big Event in HDU
    ACM STEPS——Chapter Two——Section One
    黑马day15 文件上传&amp;apche的工具包
    阿里云部署Docker(8)----安装和使用redmine
    【React Native开发】React Native控件之ProgressBarAndroid进度条解说(12)
    python抓取新浪微博评论并分析
    使用Xcode-debug模式和release模式
    hdu 5417 Victor and Machine
    《Head First 设计模式》学习笔记——适配器模式 + 外观模式
    设计模式(二)
  • 原文地址:https://www.cnblogs.com/fubeidong/p/479412.html
Copyright © 2011-2022 走看看