Получение выбранного индекса выпадающего списка

#c# #asp.net #drop-down-menu

#c# #asp.net #выпадающее меню

Вопрос:

Я использую c # и asp.net в моем проекте.Я хотел получить selectedindex выпадающего списка, но я всегда получаю значение 0. Вот мой код привязки выпадающего списка к данным

 MySqlDataReader dr = null;
        try
        {
            //////////////Opening the connection///////////////

            mycon.Open();
            string str = "select category from lk_category";
            MySqlCommand command = mycon.CreateCommand();
            command.CommandText = str;
            dr = command.ExecuteReader();
            DropDownList1.DataSource = dr;
            DropDownList1.DataValueField = "category";
            DropDownList1.DataBind();
            dr.Close();
            str = "select technology from lk_technology";
            command.CommandText = str;
            dr = command.ExecuteReader();
            DropDownList2.DataSource = dr;
            DropDownList2.DataValueField = "technology";
            DropDownList2.DataBind();
        }
        catch (Exception ex) { Response.Write("Exception reding data"   ex); }
        finally
        {
            //dr.Close();
            mycon.Close();
        }
  

И я пытаюсь получить выбранный индекс с помощью:

  protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        catID = DropDownList1.SelectedIndex 1;
    }
    protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
    {

        techID = DropDownList2.SelectedIndex;
    }
  

Вот моя страница, загружаемая:

защищенная пустая страница_load(отправитель объекта, EventArgs e) {

 if (Session["valid"] == null)
    Response.Redirect("admin.aspx");
panel1();///If session valid then show panel1;
  

}

Пожалуйста, скажите мне, где я ошибаюсь.

Комментарии:

1. можете ли вы опубликовать код Page_Load метода?

2. @Eranga Я добавил page_load в вопрос

Ответ №1:

Это потому, что вы пополняете выпадающий список при загрузке страницы, не проверяя, что он не отправлен обратно.

Искажение вашего кода try-catch (выпадающего заполнения) с помощью

 if (!this.IsPostBack)
{
    ...
}
  

должно решить проблему.