山本

导航

省市县三级联动(第三种的方法)

namespace 省市县三级联动
{
    public partial class WebPCA : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
                Province();
            }
        }

        private DataTable LoadData(string id)
        {
            string constr = ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;
            SqlConnection conn = new SqlConnection(constr);
            conn.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandText = "SELECT A_Id,A_Name FROM T_Arear WHERE A_ParentId=@pid ORDER BY A_Id";
            cmd.Parameters.AddWithValue("@pid", id);
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            adapter.Fill(dt);
            cmd.Dispose();
            conn.Dispose();
            return dt;
        }
        private void Province()
        {
            DataTable dt = LoadData("0");
            this.ddlProvince.DataSource = dt;
            //提供文本内容数据源字段
            this.ddlProvince.DataTextField = "A_Name";
            //提供值的数据源的字段
            this.ddlProvince.DataValueField = "A_Id";
            //将数据源绑定到下拉列表当中
            this.ddlProvince.DataBind();
            ListItem item = new ListItem("-------请选择-------","0");
            //设置为默认
            this.ddlProvince.Items.Insert(0, item);
        }

、、、、、、、、、、、城市选择部分、、、、、、、、、、、、、、、、、、、、

        protected void ddlProvince_SelectedIndexChanged(object sender, EventArgs e)
        {
            string id = this.ddlProvince.SelectedItem.Value;
            if (id != "0")
            {
                DataTable dt = LoadData(id);

                this.ddlCity.DataSource = dt;
                //指定下拉列表要显示的字段的值
                this.ddlCity.DataTextField = "A_Name";
                //指定下拉列表的value属性要绑定的字段的值
                this.ddlCity.DataValueField = "A_Id";
                this.ddlCity.DataBind();

                //绑定默认显示的市下面的区县
                string selectid = this.ddlCity.SelectedItem.Value;
                DataTable dt1 = LoadData(selectid);
                this.ddlArea.DataSource = dt1;
                //指定下拉列表要显示的字段的值
                this.ddlArea.DataTextField = "A_Name";
                //指定下拉列表的value属性要绑定的字段的值
                this.ddlArea.DataValueField = "A_Id";
                this.ddlArea.DataBind();
            }
            else
            {
                ddlCity.Items.Clear();
                ddlArea.Items.Clear();
            }
            //Response.Write(id);
        }

、、、、、、、、、、、、、县(区)选择部分、、、、、、、、、、、、、、、、、、、、、、、、、

        protected void ddlCity_SelectedIndexChanged(object sender, EventArgs e)
        {
           string idd= ddlCity.SelectedItem.Value;
           DataTable dt = LoadData(idd);
           this.ddlArea.DataSource = dt;
           this.ddlArea.DataTextField = "A_Name";
           this.ddlArea.DataValueField = "A_Id";
           this.ddlArea.DataBind();
        }
    }
}

程序运行结果如图所示:

posted on 2013-03-14 19:10  高级菜鸟  阅读(314)  评论(0编辑  收藏  举报