2017-02-17 26 views
0

我在AJAX面板中有一個單選按鈕列表。這裏是單選按鈕列表:ASP RadioButtonList。已選問題

<asp:RadioButtonList ID="RadioButtonList" runat="server" TextAlign="Right" AutoPostBack="true"> 
    <asp:ListItem Text="Option3" Value="Option3" Selected="True" /> 
    <asp:ListItem Text="Option1" Value="Option1" /> 
    <asp:ListItem Text="Option2" Value="Option2" /> 
</asp:RadioButtonList> 

我有一個函數,根據保存的設置加載值。它看起來類似於:

string selectedOption = savedRecord.RadioButtonListValue.ToString(); 
RadioButtonList.Items.FindByValue(selectedOption).Selected = true; 

它似乎只是正確加載的價值,如果我沒有改變選定的選項。

  • 如果我加載頁面,加載它將正確設置爲保存選項的設置。
  • 如果我加載頁面,更改選項,然後加載設置,它不會更改選項。

我已經嘗試將AutoPostBack設置爲true和false,並且它似乎沒有更改結果。有任何想法嗎?

我已經能夠硬編碼的值,它似乎總是正確加載:

//Working 
RadioButtonList.Items.FindByValue("Option1").Selected = true; 

//Not-working 
string selectedOption = savedRecord.RadioButtonListValue.ToString(); //"Option1" 
RadioButtonList.Items.FindByValue(selectedOption).Selected = true; 

Here are the combinations that I have come up with.

+0

如何和你在哪裏保存數據? – SimonC

+0

它被保存爲SQL數據庫中的XML字符串。我已經放置了斷點並在數據加載時驗證了它是正確的值。數據在用戶選擇「加載保存設置」選項後加載。 – ferensilver

+0

您是否確認** selectedOption **包含要搜索的正確值? – SimonC

回答

0

請嘗試ASPX代碼會是這個樣子:

The ASPX code will look something like this: 
 

 
<asp:RadioButtonList ID="rblist1" runat="server"> 
 

 
    <asp:ListItem Text ="Item1" Value="1" /> 
 
    <asp:ListItem Text ="Item2" Value="2" /> 
 
    <asp:ListItem Text ="Item3" Value="3" /> 
 
    <asp:ListItem Text ="Item4" Value="4" /> 
 

 
    </asp:RadioButtonList> 
 

 
    <asp:Button ID="btn1" runat="server" OnClick="Button1_Click" Text="select value" />

而後面的代碼:

protected void Button1_Click(object sender, EventArgs e) 
 
     { 
 
      string selectedValue = rblist1.SelectedValue; 
 
      Response.Write(selectedValue); 
 
     }

+0

只是打敗了我。 .SelectedValue似乎工作。我不敢相信我一直在試圖使用我的腦袋。謝謝! – ferensilver