У меня есть ASP.NET DropDownList
с AutoPostBack=true
и EnableViewState=false
. У меня есть кнопка на странице, которая ничего не делает. Если я изменяю выбор в ddl, он отправляет назад, который ожидается. Если я нажимаю кнопку, страница отправляет назад и ddl's SelectedIndexChanged
огни. Почему это становится запущенным?
Попробуйте включить состояние просмотра. Это обычная проблема.
ИЗМЕНИТЬ
Если вы не хотите включать состояние просмотра, вам придется самостоятельно отслеживать значение выпадающего списка, как этот парень DropDownList OnSelectedIndexChange на 0-й индекс без ViewState
Отзыв от 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 . Включите то же самое или вы можете сравнить индекс выбранного элемента, как предложено выше.
Если вы загружаете свой ddl в page_load, когда вы нажимаете кнопку, он снова переходит в page_load и снова загружает элементы ddl, что изменяет выбранный индекс. Но я не знаю вашего кода, так что это предположение.