xxx.aspx 页面
<head runat="server">
    <title></title>
    <script type="text/javascript">        
    window.onload = function() {
            var radio = document.getElementsByTagName("input");
            for (var i = 0; i < radio.length; i++) {
                if (radio[i].value == "RB_Test") {
                    radio[i].name = "test";
                }
            }
}    </script></head>        <asp:Repeater ID="Repeater2" runat="server">
                <ItemTemplate>
        <tr>
            <td align=center>
                <asp:RadioButton ID="RB_Test" Text='<%# Eval("Name") %>' runat="server" />            </td>
            <td align=center><%# Eval("Name") %></td>
            <td align=center><%# Eval("Dec") %></td>
            <td align=center><%# Eval("Price") %></td>
        </tr>
        </ItemTemplate>
</asp:Repeater>这样绑定之后能成功 也能现实单选 但是我怎么去获取选中的值?

解决方案 »

  1.   

    不能改变radio的name这样可以实现   呵呵  有点别扭
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>无标题页</title>
        <script type="text/javascript">
         function test(event) {
              var obj=event.srcElement?event.srcElement:event.target
              var myTable=document.getElementById("myTable");
              var radio = myTable.getElementsByTagName("input");
              for (var i = 0; i < radio.length; i++) {
                  if (radio[i].type=="radio"&&radio[i].id!=obj.id) {
                    radio[i].checked =false;
                  }
              }
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <table id="myTable">
                <asp:Repeater ID="Repeater1" runat="server">
                    <ItemTemplate>
                        <tr>
                            <td align="center">
                                <asp:RadioButton ID="RB_Test" onclick="test(event)" Text='<%# Eval("Name") %>' runat="server" />
                            </td>
                            <td align="center">
                                <%# Eval("Dec") %>
                            </td>
                        </tr>
                    </ItemTemplate>
                </asp:Repeater>
            </table>
        </div>
        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
        </form>
    </body>
    </html> public class Demo
            {
                public string Name { set; get; }
                public string Dec { set; get; }
            }        protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
                    this.Repeater1.DataSource = new System.Collections.Generic.List<Demo>()
                    { 
                          new Demo(){ Name="张三", Dec="Dec1"},
                          new Demo(){ Name="李四", Dec="Dec2"},
                          new Demo(){ Name="王五", Dec="Dec3"},
                    };
                    this.Repeater1.DataBind();
                }
            }        protected void Button1_Click(object sender, EventArgs e)
            {
                string name = string.Empty;
                foreach (RepeaterItem item in this.Repeater1.Items)
                {
                    if (item.ItemType == ListItemType.AlternatingItem || item.ItemType == ListItemType.Item)
                    {
                        RadioButton RBtn = item.FindControl("RB_Test") as RadioButton;
                        if (RBtn.Checked)
                        {
                            name = RBtn.Text;
                        }
                    }
                }
                Response.Write(name);
            }
      

  2.   

    if (RBtn.Checked)
    {
        name = RBtn.Text;
        break;   //加个break
    }