Проблема с выбранным значением radiobuttonlist при обратной передаче vb.net

У меня есть список переключателей на странице, которая используется для настройки продуктов. когда страница загружается в первый раз, отображается первый список параметров. вы выбираете один из них, затем нажимаете кнопку «Следующий шаг», и страница отправляется обратно и показывает новый список переключателей для шага 2. Теперь, если я нажму кнопку «Предыдущий шаг», я могу легко получить предыдущий список параметров для отображения но я не могу по какой-то причине выбрать один из переключателей. Я могу легко вернуть значение, которое мне нужно. сразу после создания списка переключателей у меня есть шаг, который просто говорит radiobuttonlist.selected = "somevalue" в зависимости от того, что выбрал пользователь, когда они выполнили первый шаг в первый раз.

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

Я заметил, что когда я нажимаю кнопку «Предыдущий» во время отладки, происходят следующие шаги:

обработчик page.load запускается, и код внутри моего блока if not page.ispostback НЕ запускается, что правильно. затем запускаются дескрипторы кнопки, которую я только что нажал. но затем после этого обработчик page.load запускается снова, но на этот раз код в блоке if not page.ispostback ЗАПУСКАЕТСЯ...

это нормально? чтобы блок page.onload выполнялся дважды при обратной передаче? я думаю, что это может иметь какое-то отношение к тому, почему мое значение не применяется.


person Community    schedule 12.09.2008    source источник


Ответы (8)


Похоже, вы вызываете перенаправление. Вы случайно не делаете Response.Redirect, чтобы «вернуться» на исходную страницу? Это вызовет функциональность, которую вы описываете. Сначала вы получите обратную передачу от кнопки «Назад», чтобы покинуть страницу, а затем вы получите новый запрос (IsPostback = false) при перезагрузке страницы.

person Thunder3    schedule 12.09.2008

У меня ДЕЙСТВИТЕЛЬНО был response.redirect, который я использовал, но я удалил его. Я полагаю, я могу сделать тщательную проверку, чтобы убедиться, что у меня нигде не было другого. Я также попробую свойство autoeventwireup.

person Community    schedule 12.09.2008

хорошо, похоже, что свойство autoevenwriteup уже было установлено в false еще до того, как я начал. так что не думаю что это было.

Я нигде не видел никаких других перенаправлений ... я думаю, поиск продолжается.

person Community    schedule 12.09.2008

Вы пытались установить выбранное значение на этапе предварительного рендеринга страницы вместо Page_Load?

person ipstset    schedule 13.09.2008

Попробуйте сделать это

yourRadioButonList.Items.FindByValue(YourSavedValue).Selected = true;
person netseng    schedule 05.01.2009

У меня была та же проблема, как и у Thunder3, я сделал перенаправление обратно на страницу и вызвал метод Page_Load, чтобы установить выбранное значение RadioButtonList. Но выбранное значение не было применено к RadioButtonList.

Я решил проблему, вызвав вместо этого метод Page_Init.

person bigfatlump    schedule 02.12.2009

Одна из вероятных причин, с которой я недавно столкнулся, заключается в том, что список радиокнопок различает элементы на основе значения, а не идентификатора, поэтому, если существуют повторяющиеся значения, эта проблема будет наблюдаться.

Ниже ссылка дает подробное объяснение.

Выбранный элемент RadioButtonList не закрепляется постбэк

person rs.emenu    schedule 06.02.2011

Попробуйте установить AutoEventWireup = False на странице.

person ctrlShiftBryan    schedule 12.09.2008