2010-05-03 6 views
3

Привет У меня есть набор переключателей для значений «да» и «нет», которые имеют имя = «выбор». «Да» по умолчанию проверяется. Они оба - runat = "server". Я читал выбор по обратной передаче, как показано ниже. Он работает отлично, пока проверка не прерывается. Например, если я выбрал «нет» и проверка не удалась при обратной передаче, я все еще вижу «нет». Но если я отправлю форму после исправления всего, значение будет считаться «да» на стороне сервера! Это ошибка в .net, и если да, то как мне это исправить?радио кнопка теряет значение при обратной передаче

foreach (string key in Request.Form.AllKeys) 
{ 
    if (key.EndsWith("choice")) 
     return Request.Form[key] == "yes"; 
} 
+0

имеют «EnableViewState» включена ли страница ASPX? Однажды я столкнулся с подобной проблемой, с элементом управления, показывающим одну вещь в форме, но представленные данные были совершенно разными. Он был исправлен, когда я установил EnableViewState в значение true. –

+0

Да, состояние просмотра включено. Таким образом, форма сохраняет значение, которое было выбрано до обратной передачи. Поэтому, если я выбрал «нет» перед обратной передачей, повторно отображаемая страница все еще показывает «нет». Однако, если я отправлю после этого, значение, которое считывается, «да» – Riz

+0

Понято. В моем случае у меня был включен ViewState на моем элементе управления, но не на странице, поэтому он также отслеживал обновления при обратной передаче, но сама страница, по-видимому, не волновала, поэтому результаты иногда становились довольно необычными. Извините, я не могу больше помочь. –

ответ

0

Это была проблема, когда я отключил viewstate на более глубоком уровне.

0

Если вы Databinding в RadioButton или один из его предков управления, убедитесь, что вы проверить постбэков при установке начального значения:

if (!IsPostBack) 
    YourControlId.DataBind(); 
Смежные вопросы