#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)
{
...
}
должно решить проблему.