Обработчик события SelectedIndexChanged получает старый индекс

Я обрабатываю событие onSelectIndexChanged. Событие возникает при изменении выбора DropDownList. проблема в том, что DropDownList по-прежнему возвращает старые значения для SelectedValue и SelectedIndex. Что я делаю не так?

Вот определение DropDownList из файла aspx:

<div style = "margin: 0px; padding: 0px 1em 0px 0px;">
    <span style = "margin: 0px; padding: 0px; vertical-align: top;">Route:</span>
    <asp:DropDownList id = "Select1" runat = "server" onselectedindexchanged = "index_changed" AutoPostBack = "true">
    </asp:DropDownList>
    <asp:Literal ID = "Literal1" runat = "server"></asp:Literal>
</div>

Вот обработчик события DropDownList OnSelectedIndexChanged:

protected void index_changed(object sender, EventArgs e)
{
    decimal d = Convert.ToDecimal( Select1.SelectedValue );
    Literal1.Text = d.ToString();
}
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
9
0
8 951
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

Есть ли у вас какой-либо код при загрузке страницы, который случайно меняет значение по умолчанию на первое значение?

Когда страница перезагружается, вы видите новое значение?

да, это первое, о чем я тоже подумал.

Danimal 16.09.2008 22:21

Я проверил и с удивлением обнаружил, что у меня есть код в Page_Load, который меняет значение по умолчанию. Спасибо, Митчел!

minty 16.09.2008 22:24

Пять лет спустя, и все еще актуально. Проблема заключается в том, что runat = "server" инициирует публикацию, вызывая Page_Load и все остальное, что может быть не сразу очевидно.

primo 14.08.2013 16:38

Возможно ли, что у вас есть элементы, скопированные из вашего источника данных для раскрывающегося списка?

Добавь это: if page.isnotpostback {

} вокруг вашего кода, чтобы связать раскрывающийся список.

Это может показаться очевидным, но все же. Вы инициализируете это раскрывающееся меню с начальным значением в каком-либо другом обработчике событий, например OnLoad? Если это так, вы должны проверить, вызвано ли это событие обратной передачей или первой загрузкой. Итак, у вас должно получиться что-то вроде

if (!IsPostback) d.SelectedValue = "Default"

Если вы используете AJAX, вы также можете выполнять обратный вызов, а не полную обратную передачу. В этом случае вы можете использовать это в методе загрузки страницы:

        if (!IsCallback && !IsPostBack)
        {
            // Do your page setup here
        }

Это правда? Я почти уверен, что IsPostBack вернет true в обоих случаях.

TZHX 21.02.2013 18:29

Другие вопросы по теме