asp.net DropDownList在ASPNET 4.5中不起作用

 我的爱来了2012_800 发布于 2023-02-09 12:24

下拉列表:

protected void Page_Load(object sender, EventArgs e)
{
    try
    {

        string sqlCoursesList = "SELECT sno,subject_lbl FROM courses WHERE sub_status = 1";

        this.course_sno.DataSource = gm.dataTable(sqlCoursesList);
        this.course_sno.DataTextField = "subject_lbl";
        this.course_sno.DataValueField = "sno";
        this.course_sno.DataBind();
    }
    catch (Exception exc) {
        gm.catchError(exc);
    }

}

我班上的方法

public DataTable dataTable(string sql) {
    try {
        connect();
        dt = new DataTable();
        oda = new MySqlDataAdapter(sql, con);
        oda.Fill(dt);
    }
    catch (Exception exc) {
        catchError(exc);
    }
    finally {
        try {
            closeCon();
        }
        catch (Exception excf) {
            catchError(excf);
        }
    }
    return dt;
}

按下代码按下:

protected void btnSearch_Click(object sender, EventArgs e)
{
    try
    {
        string year = this.adm_year.Text;
        string course_sno = this.course_sno.SelectedIndex.ToString();
        //this.searchTxt.Text = "Year: "+year+" Course Sno : "+course_sno;
        if (year.Equals("") || course_sno.Equals(""))
        {
            this.searchTxt.Text = gm.errorMsg("Error", "Session year and Course Must be selected in the fields", "../../images/error.png");
        }
        else
        {
            string sqlList = "SELECT sno,std_sno,opt_sno,course_sno,chosen_faculty,date_application,is_active " +
                             "FROM apply_for_course " +
                             "WHERE course_sno = '" + course_sno + "' AND " +
                             "YEAR(date_application) = '" + year + "'";
            if (gm.search(sqlList))
            {
                mdr = gm.getRecordSet(sqlList).ExecuteReader();
                if (mdr.HasRows)

                  }
........

}

现在,问题是,当我更改下拉列表选择并按下提交按钮时,它只获得第一个索引:

 string course_sno = this.course_sno.SelectedIndex.ToString();

什么我做错了?

1 个回答
  • 您在每个页面加载时绑定/重新绑定下拉列表,这会将下拉列表的选定索引重置为列表中的第一个项目.只在第一次绑定下​​拉列表,如下所示:

    protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {
            try
            {
                string sqlCoursesList = "SELECT sno,subject_lbl FROM courses WHERE sub_status = 1";
    
                this.course_sno.DataSource = gm.dataTable(sqlCoursesList);
                this.course_sno.DataTextField = "subject_lbl";
                this.course_sno.DataValueField = "sno";
                this.course_sno.DataBind();
            }
            catch (Exception exc) {
                gm.catchError(exc);
            }
        }
    }
    

    2023-02-09 12:26 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有