山本

导航

省市县三级联动

省市县三级联动首先在页面前台加上几个label来显示省、市、县,然后再相对应的后面加上DropDownList

下面就是视图,省份后面是DropDownList2,市后面是DropDownList3,县后面是DropDownList4。

 下面就是在提交按钮的单击事件中填写代码(代码区)(前提是把省市县的数据库建好)

  protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.Page.IsPostBack)
            {
                getddlProvinceDataBind();       //页面首次加载执行省份绑定


            }
        }
  
        public void getddlProvinceDataBind()       //省份数据绑定
        {
            string sqlProvince = "SELECT * FROM province";
            DropDownList2.DataSource = getDataSet(sqlProvince);
            DropDownList2.DataTextField = "province";
            DropDownList2.DataValueField = "provinceID";
            DropDownList2.DataBind();

            DropDownList2.Items.Insert(0, new ListItem("--省份--", "0"));
        }
        protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
        {
            //第一层,省份选择事件
            {
                int ProvinceID = Convert.ToInt32(DropDownList2.SelectedValue);
                if (ProvinceID > 0)
                {
                    string sqlCity = "SELECT * FROM city WHERE father=" + ProvinceID + "";       //根据省份ID找城市
                    DropDownList3.DataSource = getDataSet(sqlCity);
                    DropDownList3.DataTextField = "city";
                    DropDownList3.DataValueField = "cityID";
                    DropDownList3.DataBind();

                    DropDownList3.Items.Insert(0, new ListItem("--请选择城市--", "0"));
                }
                else
                {
                    DropDownList3.Items.Clear();
                    DropDownList3.Items.Insert(0, new ListItem("--请选择城市--", "0"));
                    DropDownList3.Items.Clear();
                    DropDownList3.Items.Insert(0, new ListItem("--请选择县区--", "0"));
                }
            }
        }

        protected void DropDownList3_SelectedIndexChanged(object sender, EventArgs e)
        {
            //第二层,城市件
            {
                int CityID = Convert.ToInt32(DropDownList3.SelectedValue);
                if (CityID > 0)
                {
                    string sqlDistrict = "SELECT * FROM area  WHERE father=" + CityID + "";       //根据城市ID找县区
                    DropDownList4.DataSource = getDataSet(sqlDistrict);
                    DropDownList4.DataTextField = "area";
                    DropDownList4.DataValueField = "areaID";
                    DropDownList4.DataBind();

                    DropDownList4.Items.Insert(0, new ListItem("--请选择县区--", "0"));
                }
                else
                {
                    DropDownList4.Items.Clear();
                    DropDownList4.Items.Insert(0, new ListItem("--请选择县区--", "0"));
                }
            }
        }

        protected void DropDownList4_SelectedIndexChanged(object sender, EventArgs e)
        {
            int ProvinceID = Convert.ToInt32(DropDownList2.SelectedValue);
            int CityID = Convert.ToInt32(DropDownList3.SelectedValue);
            int DistrictID = Convert.ToInt32(DropDownList4.SelectedValue);
            //if (ProvinceID > 0 && CityID > 0 && DistrictID > 0)
            //{
            //    Response.Write("您选择的省份ID:" + ProvinceID + "城市ID:" + CityID + "县区ID:" + DistrictID + "");
            //}
        }
        public DataSet getDataSet(string sql)       //自定义方法,sql语句参数,返回DataSet数据集
        {
            string connection = ConfigurationManager.ConnectionStrings["sqlcon"].ConnectionString;
            SqlConnection conn = new SqlConnection(connection);
            SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
            DataSet ds = new DataSet();
            sda.Fill(ds);
            return ds;
        }

这样,就完成我们想要的效果了。如下图所示:

posted on 2013-01-10 22:22  高级菜鸟  阅读(1529)  评论(0编辑  收藏  举报