三级联动 三层实现

前台:

<body>
    <form id="form1" runat="server">
    <div>
    <table><tr><td>账号</td><td>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></td></tr>
    <tr><td>密码</td><td>
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox></td></tr>
    <tr><td>邮箱</td><td>
        <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox></td></tr>
    <tr><td>地址</td><td></td>
        <asp:DropDownList ID="ddlprovince" runat="server" AutoPostBack="True"
            onselectedindexchanged="ddlprovince_SelectedIndexChanged">
        </asp:DropDownList>
        <asp:DropDownList ID="ddlcity" runat="server" AutoPostBack="True"
            onselectedindexchanged="ddlcity_SelectedIndexChanged">
        </asp:DropDownList>
        <asp:DropDownList ID="ddlarea" runat="server">
        </asp:DropDownList>
    </tr>
    </table>
    </div>
    </form>
</body>

后台:

namespace 三级联动三层
{
    public partial class 三级联动 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                province();
            }
        }
        private void province()
        {
            BLL.province bpro = new BLL.province();
            DataTable dt=bpro.GetList("").Tables[0];
            ddlprovince.DataSource = dt;
            ddlprovince.DataTextField = "provincename";
            ddlprovince.DataValueField = "provinceID";
            ddlprovince.DataBind();
        }

        protected void ddlprovince_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (this.ddlarea.Items.Count>0)
            {
                this.ddlarea.Items.Clear();
            }
            BLL.city bcity = new BLL.city();
            string proid = this.ddlprovince.SelectedItem.Value;
            DataTable dt = bcity.GetList("father='" + proid + "'").Tables[0];
            ddlcity.DataSource = dt;
            ddlcity.DataTextField = "cityname";
            ddlcity.DataValueField = "cityID";
            ddlcity.DataBind();
            //绑定默认显示的市级区划下面所有的县
            string cityid = dt.Rows[0]["cityID"].ToString();
            BLL.area barea = new BLL.area();
            DataTable dt1 = barea.GetList("father='" + cityid + "'").Tables[0];
            ddlarea.DataSource = dt1;
            ddlarea.DataTextField = "areaname";
            ddlarea.DataValueField = "areaID";
            ddlarea.DataBind();
        }

        protected void ddlcity_SelectedIndexChanged(object sender, EventArgs e)
        {
            BLL.area barea = new BLL.area();
            string cityid = this.ddlcity.SelectedItem.Value;
            DataTable dt = barea.GetList("father='" + cityid + "'").Tables[0];
            ddlarea.DataSource = dt;
            ddlarea.DataTextField = "areaname";
            ddlarea.DataValueField = "areaID";
            ddlarea.DataBind();
        }
    }
}

 

BLL层  province city area

public DataSet GetList(string strWhere)
  {
   return dal.GetList(strWhere);
  }

DAL层  province

public DataSet GetList(string strWhere)
  {
   StringBuilder strSql=new StringBuilder();
   strSql.Append("select id,provinceID,provincename ");
   strSql.Append(" FROM province ");
   if(strWhere.Trim()!="")
   {
    strSql.Append(" where "+strWhere);
   }
   return DbHelperSQL.Query(strSql.ToString());
  }

DAL层  city

public DataSet GetList(string strWhere)
  {
   StringBuilder strSql=new StringBuilder();
   strSql.Append("select id,cityID,cityname,father ");
   strSql.Append(" FROM city ");
   if(strWhere.Trim()!="")
   {
    strSql.Append(" where "+strWhere);
   }
   return DbHelperSQL.Query(strSql.ToString());
  }

DAL层 area

public DataSet GetList(string strWhere)
  {
   StringBuilder strSql=new StringBuilder();
   strSql.Append("select id,areaID,areaname,father ");
   strSql.Append(" FROM area ");
   if(strWhere.Trim()!="")
   {
    strSql.Append(" where "+strWhere);
   }
   return DbHelperSQL.Query(strSql.ToString());
  }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值