[英]Problem with HTML radio button inside repeater
我在中继器中有一个 HTML 单选按钮。 我面临两个问题:
当我从后面的代码绑定值(在后面的代码中使用数据表)时,它会抛出错误服务器标记未找到。
如何在后面的代码中获取选定的值
到目前为止,我的代码是这样的。
asp:Repeater runat="server" ID="rptr1">
<HeaderTemplate></HeaderTemplate>
<ItemTemplate>
<tr> <td>
<span><input type="radio" runat="server" name="acd" class="radio" id="radio1" value='<%# DataBinder.Eval(Container.DataItem, "valuinfm")%>'/></td><td> <label for="radio"><%# DataBinder.Eval(Container.DataItem, "txtinfm")%></label></span></td>
<br />
</tr>
</ItemTemplate>
<FooterTemplate></FooterTemplate>
</asp:Repeater>
我使用这种方法是因为在使用带有中继器的 ASP.NET 单选按钮时存在一些错误。 我不想使用 JavaScript。
基本上我想通过查询字符串重定向到其他页面,这是单选按钮的“值”。
编辑: //我已将其更正为单引号,现在没有错误(感谢布赖恩)。
单选按钮中的值不同,但我仍然可以单击两者以及如何检测选择了哪个单选按钮:
为什么不使用服务器单选按钮,如下所示:
<asp:RadioButton id="rad1" runat="server" GroupName="acd" ...
Checked='<%# Eval("valuinfm") %>' />
还要注意属性值周围的单引号,当内部引号是双引号时,您需要在外部使用单引号。
对于初学者来说,这将在浏览器中生成多个具有相同 ID 的单选按钮,这是一个禁忌。 它也可能是您问题的一部分,但它有助于查看在运行时实际抛出错误的代码。
问题是因为生成的单选按钮的 name 属性附加了一个 UniqueId。 这是 .NET 试图提供帮助,但在这种情况下,它会导致问题,因为浏览器将 name 属性相同的单选按钮分组。 一种可能的解决方案是创建您自己的单选按钮 Web 控件,该控件不会覆盖本文中讨论的 name 属性:
http://www.codeproject.com/KB/webforms/How_group_RButtons.aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.