有四个DropDownList 一个是显示省
一个是显示市,一个显示市里的学校,一个是显示学校的专业!现在关键是,当我选择一个省份的时候,下面的市变了,但第一个选项值的  SelectedIndexChanged 没有效果,但要选择其它的市后,再选择每一个就有用了。比如说,我选择“湖南”
 下面会有长沙,衡阳等,然后长沙下面有学校,但学校列表不会出来,而是要选择“衡阳”后,再选择“长沙” 这时候才会显示长沙的学校出来。protected void ddlCity_SelectedIndexChanged(object sender, EventArgs e)
    {
       
        if (ddlCity.SelectedValue != "")
        {
            this.XuexiaoClass.Items.Clear();
            string City = ddlCity.SelectedValue.ToString();
            SQLiteConnection conn = DB.Getconn();
            //conn.Open();
            SQLiteCommand cmd = new SQLiteCommand("select * from k_XuexiaoName where City = '" + City + "'", conn);
            SQLiteDataReader dr = cmd.ExecuteReader();
            
            while (dr.Read())
            {
                //this.XuexiaoClass.Items.Insert(0, "请选择要报名的院校");
                XuexiaoClass.Items.Add(new ListItem(dr["XuexiaoName"].ToString(), dr["XuexiaoName"].ToString()));
            }
            dr.Close();
            conn.Close();
        }

解决方案 »

  1.   

    this.XuexiaoClass.Items.Insert(0, "请选择要报名的院校"); 
    移到
    while (dr.Read()) 
    前面
      

  2.   

    没一个DropDownList都设一个默认值,将每个DropDownList间的关系建立好,选择一个省就加载默认的市,同时加载默认的学校,加载这个学校默认的专业;你的查询语句里要将这几个信息都遍历一下就可以了!
      

  3.   

    是不是三级联动?www.51aspx.com有源码。
    你输入三级联动查找。
      

  4.   

    选择市的DropDownList之后,学校的DropDownList发现市的DropDownList的值发生改变,所以他会刷新,而学校的专业的DropDownList的棒定时间很早,在学校的DropDownList的值发生改变之前,他觉得学校的DropDownList的值没变,所以他不会刷新所以在市的DropDownList之后,手动对学校的专业的DropDownList重新棒定
      

  5.   

    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Data.SQLite;public partial class baoming_Index : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                this.XuexiaoClass.Items.Insert(0, "请选择要报名的院校");
                this.ZhuanyeClass.Items.Insert(0, "请选择院校的专业");
                this.ddClass.Items.Insert(0, "请选择院校的类型");
                GetProvinceInfo.BindProvince(ddlProvince, ddlCity);//两个参数分别是绑定省、市的DropDownList控件的ID,看第四步。
            }    }
        protected void Baoming_Click(object sender, EventArgs e)
        {
            string Name = this.Name.Text.Trim();
            string Sex = this.Sex.Text.Trim();
            string Age = this.Age.Text.Trim();
            string Phome = this.Phome.Text.Trim();
            string Moblie = this.Moblie.Text.Trim();
            string Qq = this.qq.Text.Trim();
            string Mail = this.Mail.Text.Trim();
            string Adds = this.Add.Text.Trim();
            string Province = this.ddlProvince.SelectedItem.Text.ToString();//省份
            string City = this.ddlCity.SelectedItem.Text.ToString();//城市
            string Xuexiao = this.XuexiaoClass.SelectedItem.Text.ToString(); //学校文本          
            string JianYe = this.ZhuanyeClass.SelectedItem.Text.ToString();//专业文本  
             
            string Teach = this.Teach.Text.Trim();
            string BeiZhu = this.Beizhu.Text.Trim();
            string Data_Time = DateTime.Now.ToString();
            string Yse_No = "0";
            string Yes_del = "1";//1表示正常,0表示删除       
            if (XuexiaoClass.SelectedValue == "请选择要报名的院校")
            {
                MessageBox.Show(this.Page, "请选择要报名的院校");
                return;        }        if (ZhuanyeClass.SelectedValue == "请选择要报名的院校")
            {
                MessageBox.Show(this.Page, "请选择院校的专业");
                return;        }
            else
            {
                string sql = "INSERT INTO k_Baoming(Name, Age, Sex, Phome, moblie, Qq, Mail,Adds,Province,City, Xuexiao, JianYe, Beizhu, Teach, Data_Time, Yes_No,Yes_del) VALUES('" + Name.ToString() + "','" + Age + "','" + Sex + "','" + Phome + "','" + Moblie + "','" + Qq + "','" + Mail + "','" + Adds + "','" + Province + "','" + City + "','" + Xuexiao + "','" + JianYe + "','" + BeiZhu + "','" + Teach + "','" + Data_Time + "','" + Yse_No + "','" + Yes_del + "')";
                DB.execnonsql(sql);
                MessageBox.ShowAndRedirect(this, "您已成功报名,我们将在两个工作日会与您取得联系,系统将自动返回主页。", "../index.aspx");
                return;
            }
        }
        protected void XuexiaoClass_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (XuexiaoClass.SelectedValue == "请选择要报名的院校")
            {
                MessageBox.Show(this.Page, "请选择要报名的院校");
                return;        }        if (XuexiaoClass.SelectedValue != "")
            {
                string Class = XuexiaoClass.SelectedItem.Text.ToString();
                SQLiteConnection conn = DB.Getconn();
                //conn.Open();
                SQLiteCommand cmd = new SQLiteCommand("select * from k_ClassZhuan where ClassName = '" + Class + "'", conn);
                SQLiteDataReader dr = cmd.ExecuteReader();
                ZhuanyeClass.Items.Clear();
                while (dr.Read())
                {                ZhuanyeClass.Items.Add(new ListItem(dr["ZhuanName"].ToString(), dr["ZhuanId"].ToString()));
                }
                dr.Close();
                conn.Close();
            }    }
        protected void ddlProvince_SelectedIndexChanged(object sender, EventArgs e)
        {
               
            GetProvinceInfo.BindCity(ddlProvince, ddlCity);//参数和上面一样。
        }
        protected void ddlCity_SelectedIndexChanged(object sender, EventArgs e)
        {
           
            if (ddlCity.SelectedValue != "")
            {
                this.ddClass.Items.Clear();
                string City = ddlCity.SelectedValue.ToString();
                SQLiteConnection conn = DB.Getconn();
                SQLiteCommand cmd = new SQLiteCommand("select * from k_XuexiaoName where City = '" + City + "'", conn);
                SQLiteDataReader dr = cmd.ExecuteReader();
                this.ddClass.Items.Insert(0, "请选择院校的类型");
                while (dr.Read())
                {
                    //
                    ddClass.Items.Add(new ListItem(dr["XuexiaoClass"].ToString(), dr["XuexiaoClass"].ToString()));
                }
                dr.Close();
                conn.Close();
            }
        }
        protected void ddClass_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ddClass.SelectedValue != "")
            {
                this.XuexiaoClass.Items.Clear();
                string Class = ddClass.SelectedItem.Text.ToString();//学校类型
                string City = ddlCity.SelectedValue.ToString();
                SQLiteConnection conn = DB.Getconn();
                //conn.Open();
                SQLiteCommand cmd = new SQLiteCommand("select * from k_XuexiaoName where XuexiaoClass = '" + Class + "'and City='" + City + "'", conn);
                SQLiteDataReader dr = cmd.ExecuteReader();            while (dr.Read())
                {
                    //this.XuexiaoClass.Items.Insert(0, "请选择要报名的院校");
                    XuexiaoClass.Items.Add(new ListItem(dr["XuexiaoName"].ToString(), dr["XuexiaoName"].ToString()));
                }
                dr.Close();
                conn.Close();
            }
        }
    }
      

  6.   

    建议用AJAX,刷新看起来太难受了