繁体   English   中英

中继器内 HTML 单选按钮的问题

[英]Problem with HTML radio button inside repeater

我在中继器中有一个 HTML 单选按钮。 我面临两个问题:

  1. 当我从后面的代码绑定值(在后面的代码中使用数据表)时,它会抛出错误服务器标记未找到。

  2. 如何在后面的代码中获取选定的值

到目前为止,我的代码是这样的。

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM