2012-12-21 33 views
0

我有3個單選按鈕,它們都是單個組的一部分。當單擊其中一個非默認單選按鈕時,它們會在客戶端正確更新(取消選擇上一個單選按鈕並選擇新單選按鈕)。我甚至附加了一個OnClientClick到提交表單來測試它的按鈕,並且在提交表單之前.checked值是正確的。但是,服務器端的第一行代碼檢查值,再次用於測試目的,但.checked值沒有改變。默認值仍然根據服務器進行檢查。單選按鈕沒有更新服務器端的值

下面是我的一些相關的代碼:

ASP

<asp:RadioButton runat="server" ID="rdoDays" Text=" Days" GroupName="RepeatType" /> 
<asp:RadioButton runat="server" ID="rdoMonths" Text=" Months" GroupName="RepeatType" /> 
<asp:RadioButton runat="server" ID="rdoYears" Text=" Years" GroupName="RepeatType" /> 

<asp:Button runat="server" ID="btnSaveAlert" OnClick="btnSaveAlert_OnClick" 
    Text="Save" OnClientClick="Test()" /> 

使用Javascript - 點擊一個月的時候,JavaScript會顯示它應該「假」,那麼「真」的警告框。

function Test() { 
    var rdoDays = document.getElementById("<%= rdoDays.ClientID %>"); 
    var rdoMonths = document.getElementById("<%= rdoMonths.ClientID %>"); 
    var rdoYears = document.getElementById("<%= rdoYears.ClientID %>"); 
    alert(rdoDays.checked); 
    alert(rdoMonths.checked); 
} 

那麼對於C#,我已在VS斷點在Page_Init的最開始和單選按鈕.checked值都是「假」

我不知道發生了什麼事情。我是否在asp元素中丟失了一個標籤?任何幫助是極大的讚賞。

+0

我最終改變使用telerik:RadButton作爲切換控件而不是使用asp:RadioButton。這在回發時向服務器提供了更新的值。對於這個問題,不是一個真正的答案,而是一個替代方案。 –

回答

2

ViewState在OnInit和OnLoad之間加載。嘗試檢查是否在頁面的OnLoad事件中檢查了單選按鈕。

+0

它不是。 .Checked中的值在Init函數和OnLoad之間不會改變。 –

1

也許你可以使用Fiddler測試一下,看看正在從客戶端發送的內容數據到服務器,試圖縮小在實際的問題是:

http://www.fiddler2.com/fiddler2/

+1

我下載了Fiddler。運行它並導致回發後,我查看了WebForm選項卡,查看發送到服務器的內容,看起來好像單選按鈕本身沒有被髮送。但該集團正在發送價值「rdoMonth」 –