У меня есть список на веб-странице asp.net.
Я выбираю пункт 2. Если у меня включен автоответчик, это перезагружает страницу и выбирает пункт1.
Я только привязываю данные к странице при первой загрузке (! IsPostback), прошел и проверил это. Это не повторное связывание или повторное заполнение списка, оно просто выбирает первый элемент снова, удаляя выбор второго элемента.
Кроме того, событие onselectedindexchanged запускается только ПОСЛЕ обратной передачи, поэтому я не могу сохранить выбранный индекс в переменной сеанса для установки при обратной передаче ...
страница установлена в viewstateenabled, элементы управления установлены в viewstateenabled, viewstatemode включено.
Как мне настроить его так, чтобы 2-й элемент все еще был выбран при обратной передаче? Мой код очень прост, но я опубликую его ...
<asp:ListBox ID="AvailableRepairSelection" runat="server" AutoPostBack="True"
onselectedindexchanged="AvailableRepairSelection_SelectedIndexChanged"
ViewStateMode="Enabled"></asp:ListBox>
Опять же, я выбираю пункт 2, страницы возвращаются назад, элемент1 выделяется.
соответствующие части кода:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
int selectedmodel = Convert.ToInt32(Session["selectedModel"]);
List<AvailableRepair> Repairs = (from r in Database.instance().AvailableRepairs
where r.modelid == selectedmodel
select r).ToList<AvailableRepair>();
foreach (AvailableRepair repair in Repairs)
{
AvailableRepairSelection.Items.Add(new ListItem(repair.repair + ": " + repair.description + "- " + repair.cost, repair.cost));
}
}
}
ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ, что на этой странице есть что-то еще, но я выделил единственные проблемы, связанные с этими фрагментами. Так что не советуйте мне, как изменить мою страницу или почему я публикую обратно выборку, когда на странице ничего нет, кроме списка.