Почему SelectedIndexChanged стреляет для DropDownList, когда кнопка нажата?

У меня есть ASP.NET DropDownList с AutoPostBack=true и EnableViewState=false. У меня есть кнопка на странице, которая ничего не делает. Если я изменяю выбор в ddl, он отправляет назад, который ожидается. Если я нажимаю кнопку, страница отправляет назад и ddl's SelectedIndexChanged огни. Почему это становится запущенным?

7
задан abatishchev 16 March 2010 в 08:18
поделиться

3 ответа

Попробуйте включить состояние просмотра. Это обычная проблема.

ИЗМЕНИТЬ

Если вы не хотите включать состояние просмотра, вам придется самостоятельно отслеживать значение выпадающего списка, как этот парень DropDownList OnSelectedIndexChange на 0-й индекс без ViewState

2
ответ дан 6 December 2019 в 19:35
поделиться

Отзыв от Microsoft: - http://connect.microsoft.com/VisualStudio/feedback/details/103844/dropdownlist-always-fire-selectedindexchanged-event-when-viewstate-is-disabled-and-the -selected-item-is-not-changed-by-the-user

"Спасибо за ваш отзыв. Если ViewState отключен на странице или в элементе управления DropDownList, { {1}} выбранный индекс не может быть сохранен, поэтому каждая обратная передача выглядит так, как будто выбранный индекс был изменен. Вы можете сохранить выбранный индекс самостоятельно и сравните с ним, чтобы увидеть, действительно ли изменился выбор , или вы можете включить ViewState в DropDownList. "

В вашем случае состояние просмотра в раскрывающемся списке - false . Включите то же самое или вы можете сравнить индекс выбранного элемента, как предложено выше.

10
ответ дан 6 December 2019 в 19:35
поделиться

Если вы загружаете свой ddl в page_load, когда вы нажимаете кнопку, он снова переходит в page_load и снова загружает элементы ddl, что изменяет выбранный индекс. Но я не знаю вашего кода, так что это предположение.

1
ответ дан 6 December 2019 в 19:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: