У меня есть страница asp.net со списком. Несколько обработчиков событий подписываются на его событие OnSelectedIndexChanged
.
Когда я изменяю SelectedIndex
программно , ни одно из событий не запускается.
Теперь взломать это вызывать каждый обработчик событий, но это уже вызывало ошибки, так как люди не знали, что они должны были делать это при добавлении нового обработчика событий.
Я могу сделать это в приложении Winforms, и даже когда SelectedIndex
изменяется в коде, события запускаются. Кто-нибудь видел это раньше?
Взгляните на исходный код класса ListBox и его основу — ListControl. Вы заметите, что метод OnSelectedIndexChanged вызывается из метода RaisePostDataChangedEvent. Это означает, что событие SelectedIndexChanged возникает только в том случае, если выбранный индекс был изменен на стороне клиента, а значение, хранящееся в ViewState, не равно данным, поступающим с PostData. Таким образом, это событие не должно возникать, если SelectedIndex был изменен в коде сервера.