省市联动下拉菜单的实现

Posted 素年,锦时

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了省市联动下拉菜单的实现相关的知识,希望对你有一定的参考价值。

                                                                                             省市联动下拉菜单的实现
一、数据库的建立
为了更好的实现与数据库连接,省表中需要有两个元素,一个是省编号,一个是省名称;市表中需要有三个元素,一个是市编号,一个是市名称,更重要的是这个市改隶属于那个省。
省表(UserProvince)
ProID    ProName
1            河南
2            安徽
市表(UserCity)
CityID    ProID    CityName
1              1         郑州
2              2         合肥

二、代码
后台:(定义两个关于省市的的函数,通过SelectedIndexChanged事件实现对市的筛选)
protected void Page_Load(object sender, EventArgs e)
    {
            BindProvince();
            BindCity();
        }
 private void BindProvince()
        {
            string sql = "select ProID,ProName from UserProvince";
            SqlConnection conn = new SqlConnection("SqlDataSource1");
            SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
            DataSet ds = new DataSet();
            conn.Open();
            adapter.Fill(ds);
            conn.Close();
            ddlprovince.DataSource = ds.Tables[0];
            ddlprovince.DataValueField = "ProID";
            ddlprovince.DataTextField = "ProName";
            ddlprovince.DataBind();
        }
        private void BindCity()
        {
            string sql = "select CityID,ProID,CityName from UserCity; ";
            SqlConnection conn = new SqlConnection("SqlDataSource2");
            SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
            DataSet ds = new DataSet();
            conn.Open();
            adapter.Fill(ds);
            conn.Close();
            ddlCity.DataSource = ds.Tables[0];
            ddlCity.DataValueField = "CityID";
            ddlCity.DataTextField = "CityName";
            ddlCity.DataBind();
        }
protected void ddlprovince_SelectedIndexChanged(object sender, EventArgs e)
    {
       
            int ProID = this.ddlprovince.SelectedIndex + 1;
            SqlConnection conn = new SqlConnection();
            conn.ConnectionString = "User ID=sa;Initial Catalog=News;Data Source= (local);Password=123";
            conn.Open();
            SqlCommand cmd = new SqlCommand("select * from [News].[dbo].[UserCity] where ProID=‘"+ProID+"‘");
            cmd.Connection = conn;
            SqlDataReader sdr = cmd.ExecuteReader();
            //绑定
            this.ddlCity.DataSource = sdr;
            this.ddlCity.DataTextField = "CityName";
            this.ddlCity.DataValueField = "CityID";
            this.ddlCity.DataBind();
            sdr.Close();
            conn.Close();
        }
}
前台:(两个连接数据库的DropDownList控件)
 <asp:DropDownList ID="ddlprovince" runat="server" widtn="55px" DataSourceID="SqlDataSource1" DataTextField="proName" DataValueField="proID" AutoPostBack="True" OnSelectedIndexChanged="ddlprovince_SelectedIndexChanged">
                                    </asp:DropDownList>
                                    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NewsConnectionString2 %>" SelectCommand="SELECT [proID], [proName] FROM [Userprovince]"></asp:SqlDataSource>
                                    <asp:DropDownList ID="ddlCity" runat="server" widtn="55px"  DataTextField="cityName" DataValueField="cityID" AutoPostBack="True">
                                    </asp:DropDownList>
                                    <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:NewsConnectionString3 %>" SelectCommand="SELECT [cityID], [proID], [cityName] FROM [UserCity]"></asp:SqlDataSource>

以上是关于省市联动下拉菜单的实现的主要内容,如果未能解决你的问题,请参考以下文章

省市区县街道四级联动下拉菜单

省市区三级联动下拉菜单应该怎么写

jQuery+PHP+MySQL实现二级联动下拉菜单

ajax实现三级联动下拉菜单

asp 二级联动菜单

(实用篇)jQuery+PHP+MySQL实现二级联动下拉菜单