如题,如何在Asp.net中实现年月日的三级联动呢?问题主要在月日上面?

解决方案 »

  1.   

                //绑定省
                OleDbDataAdapter odr = new OleDbDataAdapter("select * from SMT_ypaddone", con);
                DataSet ds = new DataSet();
                odr.Fill(ds, "SMT_ypaddone");
                this.DropDownList1.DataSource = ds.Tables["SMT_ypaddone"];
                this.DropDownList1.DataTextField = "SMT_addone";
                this.DropDownList1.DataValueField = "SMT_addone_id";
                this.DropDownList1.DataBind();            //绑定市
                OleDbDataAdapter oda = new OleDbDataAdapter("select * from SMT_ypaddtwo", con);
                DataSet dt = new DataSet();
                oda.Fill(dt, "SMT_ypaddtwo");
                this.DropDownList2.DataSource = dt.Tables["SMT_ypaddtwo"];
                this.DropDownList2.DataTextField = "SMT_addtwo";
                this.DropDownList2.DataValueField = "SMT_addtwo_ID";
                this.DropDownList2.DataBind();protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string id = this.DropDownList1.SelectedValue.ToString();
            OleDbConnection con = DB.getConnection();
            con.Open();
            OleDbDataAdapter odr = new OleDbDataAdapter("select * from SMT_ypaddtwo where SMT_addone_id=" + id, con);
            DataSet ds = new DataSet();
            odr.Fill(ds, "SMT_ypaddtwo");
            this.DropDownList2.DataSource = ds.Tables["SMT_ypaddtwo"];
            this.DropDownList2.DataTextField = "SMT_addtwo";
            this.DropDownList2.DataValueField = "SMT_addtwo_ID";
            this.DropDownList2.DataBind();
        }
      

  2.   

    还是用日历控件好些
    知道两级怎么做就知道三级了啊,不就是写在selectIndexchanged事件嘛!
      

  3.   

    http://www.cnblogs.com/meetweb/archive/2007/03/16/677271.html
      

  4.   

    的确日历控件比较方便!
    实在要使用dropdownlist的话也不是很麻烦不过最好用js来实现联动!
    用js的话网上很多代码一搜就搜到了!
    如果不想用js的话用UpdatePanel和ScriptManager来实现无刷新!
      

  5.   

    微软的ajax里那个日期控件比较绚,还支持多语言版本
    可惜的是速度慢