小胡原创
为这问题纠结了整整一天半,最后还是朋友帮忙找出来的,下面来看我错误的经典
<asp:Panel ID="Panel1" runat="server" class="Exam">一、单选题<span>(每题<%=dt.Rows[0]["E_RadioScore"].ToString() %>分)</span></asp:Panel>
<asp:Repeater ID="Repeater1" runat="server" onitemdatabound="Repeater1_ItemDataBound">
<ItemTemplate>
<div class="Examtitle"><%# Eval("No","{0}、") %><asp:Label ID="Label1" runat="server" Text='<%# Eval("Ra_Title") %>' /></div>
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("Ra_ID") %>' />
<asp:RadioButtonList ID="RadioButtonList1" runat="server" DataTextField="RL_Title" DataValueField="RL_IsYes">
</asp:RadioButtonList>
</ItemTemplate>
</asp:Repeater>
这是前台的代码,没有任何问题
再来看后台的:
for (int i = 0; i < Repeater1.Items.Count; i++)
{
RadioButtonList r = Repeater1.Items[i].FindControl("RadioButtonList1") as RadioButtonList;
HiddenField hid = Repeater1.Items[i].FindControl("HiddenField1") as HiddenField;
int answer = r.SelectedIndex + 1;//这里的selectedIndex怎么调试都是0和1
new AnswerSaveManager().Add(AnswerID, answer.ToString(), Convert.ToInt32(hid.Value), 1);
}
代码上面没有任何异常现象,再来看我调试出更诡异的数据
下面是调试时候我选择的值:
可调试的时候发现我选择的“太阳能发电”变成了“生物质能”,来看下我下面调试的结果
r.SelectedItem.Text "生物质能" string
r.Items.Count 4 int
r.Items[0].Text "核能" string
r.Items[1].Text "生物质能" string
r.Items[2].Text "太阳能发电" string
r.Items[3].Text "风力发电" string
很奇怪的一件事吧,纠结了我整整一天半的时间,耗的力气不小啊,最后还是请朋友帮忙,也是看了半天,让他找到问题了
原来RadioButtonList 里面的value 值不能有相同的,否则就会出现错误
这下好了,把我头疼一天半的问题彻底解决了,希望能帮助到大家,解决问题的别忘了顶下哦
- 本文标题: RadioButtonList 获取的索引值与选择的不匹配不正确
- 文章分类:【.NET/Web】
- 非特殊说明,本文版权归【胡同里的砖头】个人博客 所有,转载请注明出处.
- 上一篇:JS 接收网址中文参数乱码问题的解决方案
- 下一篇: html 字母太长页面撑大换行问题