转发器内部的HTML单选按钮问题

问题描述 投票:1回答:3

我在中继器内有一个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。

基本上,我想通过具有作为单选按钮“值”的querystring来重定向到其他页面。

Edited: //我已将其更正为单引号,现在没有错误(感谢Brian)。

单选按钮中的值是不同的,但我仍然可以单击两者,以及如何检测选择了哪个单选按钮:

c# asp.net repeater
3个回答
0
投票

问题是因为生成的单选按钮的name属性将附加一个UniqueId。这是.NET试图提供的帮助,但在这种情况下,由于浏览器将名称属性相同的单选按钮分组,因此它会引起问题。一种可能的解决方案是创建您自己的单选按钮Web控件,该控件不会覆盖本文讨论的name属性:

http://www.codeproject.com/KB/webforms/How_group_RButtons.aspx


1
投票

为什么不使用服务器单选按钮,如:

<asp:RadioButton id="rad1" runat="server" GroupName="acd" ... 
   Checked='<%# Eval("valuinfm") %>' />

也请注意属性值周围的单引号,当内部引号为双引号时,则需要在外部使用单引号。


0
投票

首先,这将在浏览器中生成多个具有相同ID的单选按钮,这是禁止的。这也可能是您的问题的一部分,但有助于查看在运行时实际上引发错误的代码。

© www.soinside.com 2019 - 2024. All rights reserved.