2013-02-25 93 views
0

我對默認值爲yes的radiobuttonlist使用以下代碼。如何在asp.net中獲取選定的單選按鈕列表?

<asp:RadioButtonList ID="RadioButtonList1" runat="server" onselectedindexchanged="radiobtnlist_SelectedIndexChanged"> 
    <asp:ListItem Selected="True">YES</asp:ListItem> 
    <asp:ListItem>NO</asp:ListItem> 
</asp:RadioButtonList> 

每當radiobtnlist的值改變事件被fired.I正在使用以下C#代碼爲所選索引時間改變

protected void radiobtnlist_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    //do work 
} 

問題是,當radiobtnlist值被設定爲否和選擇不會改變,但選中的索引更改事件被觸發,並且當radiobtnlist設置爲「是」時,選定的索引更改事件不會被觸發。

我必須在回發之前每次都找到radiobtnlist的選擇,並且如果它的值被更改,然後保存在db中的數據,但是如何在ListItem上找到radiobtnlist的默認值的選定值。

+0

您能否以下一種方式描述問題:「應該發生什麼」以及「實際發生了什麼」? – Novak 2013-02-25 18:40:01

+0

如何在radiobtnlist_SelectedIndexChanged事件中查找ListItem的選定值。 – mck 2013-02-25 18:41:14

+0

我認爲你只需要設置AutoPostBack =「True」,.NET就會爲你做到這一點。 – Narnian 2013-02-25 18:41:38

回答

0

我想我明白你在說什麼。

默認的答案是YES,所以這意味着當用戶想要選擇YES時,它已經被選中,因此他們將其單獨放置。由於RadioList值是獨立的,因此不會觸發事件。

根據您提供的代碼,我可以看到沒有設置「AutoPostBack」。如果是這種情況,那麼我假設你通過提交按鈕觸發回發。

如果你通過提交按鈕觸發回發,那麼你可以把你的邏輯放在那裏。這樣每次都會觸發它。例如:

protected void submit_click(object sender, EventArgs e) 
{ 
    var answerIsYes = (radiobtnlist.SelectedIndex == 0); 
    //store value to DB 
} 

您沒有指定您的表單是否將用於編輯現有數據。如果是這樣,那麼每回發一次就將RadioList的值存回數據庫是沒有效率的。你需要考慮如何改變它,以便它只存儲值CHANGES時的值。

相關問題