转发器内的html单选按钮问题

时间:2010-01-29 18:05:18

标签: c# asp.net repeater

我在转发器里面有一个html单选按钮。我面临两个问题

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

  2. 如何在

  3. 后面的代码中获取所选值

    我的代码到现在为止。

    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。

    基本上我想通过查询字符串重定向到其他页面,这是查看单选按钮的“值”

    编辑: //我已将其更正为单引号,现在没有错误(感谢Brian) 单选按钮中的值不同,但我仍然可以单击两者以及如何检测选择了哪个单选按钮:

3 个答案:

答案 0 :(得分:1)

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

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

注意属性值周围的单引号,当内部引号为double时,外部需要单引号。

答案 1 :(得分:0)

对于初学者来说,这将在浏览器中生成具有相同ID的多个单选按钮,这是禁忌。它也可能是您的问题的一部分,但它有助于查看在运行时实际抛出错误的代码。

答案 2 :(得分:0)

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

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