0

我将以下代码用于默认值为 yes 的单选按钮列表。

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

每次更改 radiobtnlist 的值时都会触发一个事件。我正在使用以下 c# 代码更改所选索引

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

问题是,当 radiobtnlist 值设置为 No 并且选择未更改但会触发 selectedindex 更改事件,并且当 radiobtnlist 设置为 Yes 时,不会触发 selectedindex 更改事件。

我必须在回发之前每次都找到radiobtnlist的选择,如果它的值被更改,那么将数据保存在db中,但是如何在ListItem上找到具有默认值的radiobtnlist的选定值。

4

1 回答 1

0

我想我明白你在说什么。

默认答案是“是”,这意味着当用户想要选择“是”时,它已经被选中,因此他们不理会它。因为 RadioList 值是单独存在的,所以不会触发任何事件。

根据您提供的代码,我可以看到没有设置“AutoPostBack”。如果是这种情况,那么我假设您正在通过提交按钮触发回发。

如果您通过提交按钮触发回发,那么您可以将您的逻辑放在那里。这样每次都会触发。例如:

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

您没有指定您的表单是否将用于编辑现有数据。如果是,那么在每次回发时将 RadioList 的值存储回数据库将效率不高。您需要考虑如何更改它,以便它仅在值更改时存储该值。

于 2013-02-25T18:56:57.430 回答