repeater模板中有两个绑定数据的radiobutton 他们的选中状态是从数据库中读取判断的 但是现实是总是选中后一个 求解 代码如下
<asp:Repeater runat="server" >
<HeaderTemplate>
<table cellpadding="0" cellspacing="0" width="960">
</HeaderTemplate>
<ItemTemplate>
<tr >
<td >
<asp:HiddenField runat="server" Value='<%#Eval("ID") %>'/>
(<%#Eval("Index")%>) <%#Eval("Question")%>
<td width="5%">
<input name="YCBbox<%#Eval("ID") %>" type="radio" value="Y" checked="<%#Convert.ToBoolean(Eval("AnswerByTester").ToString()=="1" ? "True" : "False")%>" />正确<%#Eval("AnswerByTester")%></td><td width="5%">
<input name="YCBbox<%#Eval("ID") %>" type="radio" value="N" checked="<%#Convert.ToBoolean(Eval("AnswerByTester").ToString()!="1" ? "True" : "False")%>" />错误</td>
<%-- <asp:RadioButtonList runat="server" AutoPostBack="True" RepeatDirection="Horizontal">
<asp:ListItem >正确</asp:ListItem>
<asp:ListItem>错误</asp:ListItem>
</asp:RadioButtonList>--%>
</td>
</tr>
</ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:Repeater>
问题:
1.对于html控件中的<input type="radio"/>来说,只要控件中出现checked属性,就会被选中;
2.你两个radio中都有出现了selected属性并且name属性相同肯定选择的一直为最后一个
3.指定属性值为true或false只能用在<asp:>服务器控件中才起作用,所以此处不能那样判断
解决:
1.你可以写一个方法,传AnswerByTester为参数,用程序作判断,将<input type="radio">的html代码输出(建议)
2.你用服务器控件,可以在repeater中ItemDataBound事件中进行绑定
问题 2. 中写错属性了:应为chekced,不是selected