省市联动 DropDownList控件

1》

DropDownList控件可以使用ObjectDataSource作为数据源。但是也是可以自己手动绑定数据源。这里我们就尝试自己手动绑定数据源

首先,在WebForm页面拖入两个DropDownList控件。 给DropDownList1控件的DropDownList1.AutoPostBack 属性设置为 true;

DropDownList1.AutoPostBack = true;

这样当用户改变DropDownList1这个控件的内容的时候,即选中值的时候,就会自动提交数据,通过自动提交数据来改变DropDownList2这个控件里的值

比如DropDownList1控件里的值设置湖南,那么DropDownList2里面的值就会改变为湖南对应的地级城市。

如何实现这个功能呢? 如果用手动绑定数据源的方法来实现的话,我们可以这样做:在DropDownList1改变数据的时候,因为之前已经设置了DropDownList1.AutoPostBack = true;它会在数据改变的时候自动提交。鉴于这个原理,我们可以在某个方法中获取这个提交过来的值,比如提交过来一个‘湖南’  然后根据这个值去数据库中查找,这个湖南省份对应的地级市。然后将值显示到DropDownList2控件当中。


提示一下:如果用OjbectDataSource数据源的话,那么就将DropDownList1绑定一个OjbectDataSource数据源,将DropDownList2再绑定一个OjbectDataSource数据源,



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Web.BLL;

namespace WebApp
{
    public partial class LocationList : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //如果是第一次加载。将DropDownList1控件绑定数据源
                LocationBll bll = new LocationBll();
                //数据源为这个方法(方法返回一个List泛型集合)
                this.DropDownList1.DataSource = bll.GetLocationALlProvince();
                //让DropDownList1这个控件显示locName这个字段的数据
                this.DropDownList1.DataTextField = "locName";

                //假如说要提交数据,到底是提交那个字段的值。这里设置提交数据的时候提交的是locName的值
                this.DropDownList1.DataValueField = "locName";
                this.DropDownList1.DataBind();
            }

            else
            {
                //既然前面设置了this.DropDownList1.DataValueField = "locName"; 那么这里获取到的也就是locName的值(例如;湖南)
                string a = this.DropDownList1.SelectedItem.Text;
                string b = this.DropDownList2.SelectedItem.Text;
                //这里是获取到的locName对应的locId的值
                string c = this.DropDownList2.SelectedItem.Value;
            }       

        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值