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

StackOverflow https://stackoverflow.com/questions/75282

  •  09-06-2019
  •  | 
  •  

Вопрос

я занимаюсь 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>

Вот выпадающий список OnSelectedIndexChanged обработчик события:

protected void index_changed(object sender, EventArgs e)
{
    decimal d = Convert.ToDecimal( Select1.SelectedValue );
    Literal1.Text = d.ToString();
}
Это было полезно?

Решение

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

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

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

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

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

Добавь это:если страница.isnotpostback {

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top