Как установить свойство Valuse элемента списка, чтобы исправить идентификатор из строки таблицы базы данных?

1

Я использую сущность Framework для подключения к базе данных и получения некоторой информации из таблицы. Мне нужно показать эту информацию в выпадающем списке. Мне нужно установить каждый список. Значение элемента равно идентификатору, который устанавливается в базе данных.

public void EducationDropDownListViewer()
{
    EducationDropdown.Items.Add(new ListItem { Text = "--select--", Value = "0" });
    List<Education> educations = ModelLists.GetEducationList();
    for (int i = 0; i < educations.Count; i++)
    {
        ListItem educationListItem = new ListItem();
        Education education = educations[i];
        educationListItem.Text = education.EducationName;
        educationListItem.Value = education.Id.ToString(CultureInfo.InvariantCulture);
        EducationDropdown.Items.Add(educationListItem);
    }
}

Я ожидаю, что наборы идентификаторов соответствуют каждой строке Id из базы данных, но она будет последовательно запускаться на 1. Как я могу установить это свойство для корректировки значения? Мне нужно использовать это значение, которое выбирает через этот код, чтобы делать некоторые обновления в таблицах базы данных.

protected void EducationDropdown_SelectedIndexChanged(object sender, EventArgs e)
{
    ViewState["educationid"] = Convert.ToInt32(EducationDropdown.SelectedIndex);
}
Теги:
database
drop-down-menu
listitem

1 ответ

2
Лучший ответ

Свойство SelectedIndex возвращает прогрессивный указатель текущего элемента select во всём DropDownList.
Вы ищете свойство SelectedValue которое возвращает Value SelectedItem

protected void EducationDropdown_SelectedIndexChanged(object sender, EventArgs e)
{
    // If you accept also the item at index zero (the prompt to select) then change
    // the test below to >=
    if(EducationDropDown.SelectedIndex > 0)
        ViewState["educationid"] = Convert.ToInt32(EducationDropdown.SelectedValue);
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню