ListBox не запускает событие OnSelectedIndexChanged, когда SelectedIndex изменено

У меня есть страница asp.net со списком. Несколько обработчиков событий подписываются на его событие OnSelectedIndexChanged .

Когда я изменяю SelectedIndex программно , ни одно из событий не запускается.

Теперь взломать это вызывать каждый обработчик событий, но это уже вызывало ошибки, так как люди не знали, что они должны были делать это при добавлении нового обработчика событий.

Я могу сделать это в приложении Winforms, и даже когда SelectedIndex изменяется в коде, события запускаются. Кто-нибудь видел это раньше?

1
задан John Rudy 24 August 2010 в 19:19
поделиться

1 ответ

Взгляните на исходный код класса ListBox и его основу — ListControl. Вы заметите, что метод OnSelectedIndexChanged вызывается из метода RaisePostDataChangedEvent. Это означает, что событие SelectedIndexChanged возникает только в том случае, если выбранный индекс был изменен на стороне клиента, а значение, хранящееся в ViewState, не равно данным, поступающим с PostData. Таким образом, это событие не должно возникать, если SelectedIndex был изменен в коде сервера.

2
ответ дан 2 September 2019 в 21:53
поделиться
Другие вопросы по тегам:

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