2010-05-03 65 views
3

嗨我有一組單選按鈕,用於「yes」和「no」值,其名稱爲「choice」。默認選中「是」。他們都runat =「服務器」。我閱讀下面的回發選項。只要驗證不失敗,它就可以很好地工作。例如,如果我選擇「否」並且在回發時驗證失敗,我仍然看到選擇「否」。但如果我在更正所有內容後提交表單,則在服務器端讀取的值爲「是」!這是.net中的一個錯誤,如果是這樣,我該如何解決這個問題?單選按鈕在回發時丟失數值

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

是否.aspx頁面都「的EnableViewState」啓用?我遇到過一次類似的問題,控件在窗體上顯示了一件事,但提交的數據完全不同。當我將EnableViewState設置爲true時,它已經修復。 – 2010-05-03 16:39:58

+0

是視圖狀態已啓用。這就是表單仍然保留在回發之前選擇的值的方式。因此,如果我在回發之前選擇了「否」,則重新呈現的頁面仍顯示爲「否」。但是,如果在此之後提交,則回讀的值爲「是」 – Riz 2010-05-03 16:41:25

+0

瞭解。就我而言,我對我的控制啓用ViewState的,而不是網頁,所以它會繼續回傳跟蹤更新爲好,但網頁本身顯然沒有在意,那麼結果將在時間變得相當不尋常。對不起,我無法進一步幫助。 – 2010-05-03 16:44:59

回答

0

這是一個問題,我禁用更深層次的viewstate。

0

如果您綁定的單選按鈕或其祖先控件之一,請務必檢查回傳設定初始值時:

if (!IsPostBack) 
    YourControlId.DataBind();