如何在asp.net中获取选定的单选按钮列表?
问题描述:
我对默认值为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的默认值的选定值。
答
我想我明白你在说什么。
默认的答案是YES,所以这意味着当用户想要选择YES时,它已经被选中,因此他们将其单独放置。由于RadioList值是独立的,因此不会触发事件。
根据您提供的代码,我可以看到没有设置“AutoPostBack”。如果是这种情况,那么我假设你通过提交按钮触发回发。
如果你通过提交按钮触发回发,那么你可以把你的逻辑放在那里。这样每次都会触发它。例如:
protected void submit_click(object sender, EventArgs e)
{
var answerIsYes = (radiobtnlist.SelectedIndex == 0);
//store value to DB
}
您没有指定您的表单是否将用于编辑现有数据。如果是这样,那么每回发一次就将RadioList的值存回数据库是没有效率的。你需要考虑如何改变它,以便它只存储值CHANGES时的值。
您能否以下一种方式描述问题:“应该发生什么”以及“实际发生了什么”? – Novak 2013-02-25 18:40:01
如何在radiobtnlist_SelectedIndexChanged事件中查找ListItem的选定值。 – mck 2013-02-25 18:41:14
我认为你只需要设置AutoPostBack =“True”,.NET就会为你做到这一点。 – Narnian 2013-02-25 18:41:38