<asp:DataList ID="DataList1" runat="server">
        <ItemTemplate>
        <asp:RadioButton ID="RadioButton1" runat="server" Text='<%# Eval("LeiBMCh") %>' GroupName="a" />
        </ItemTemplate>
        </asp:DataList>
动态生成的单选按钮不是单选,而是都能选择,什么原因

解决方案 »

  1.   

    <asp:DataList ID="DataList1" runat="server"> 
        <ItemTemplate> 
            <input type="radio" id="RadioButton1" name="a"><%# Eval("LeiBMCh") %>
        </ItemTemplate> 
    </asp:DataList> 
      

  2.   

    干嘛这么写,有RadioButtonList可用
      

  3.   

    我这有个js控件的单选:
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title>图片展示</title>
        <script type="text/javascript">
    function ChangeChk(ctl)
    {
        var theBox=ctl;         
             var elem=theBox.form.elements;
              for(i=0;i<elem.length;i++)
              {
             if(elem[i].type=='radio')
             {
                   if(elem[i].id==theBox.id)
                   {
                      elem[i].checked=true;
                   }
                   else
                   {
             elem[i].checked=false;
                   }
                  }
                 }
         }
    </script>
    </head>
    <body>
        <form id="form1" runat="server">
            <br />
            <asp:DataList ID="DataList1" runat="server" RepeatColumns="4" RepeatDirection="Horizontal">
                <ItemTemplate>
                    <table width="150">
                        <tr>
                            <td>
                                <%#Eval("title") %>
                                <br />
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <asp:RadioButton ID='rbd' onclick="javascript:ChangeChk(this)" runat="server"  />                       
                            </td>
                        </tr>
                    </table>
                </ItemTemplate>
            </asp:DataList>
        </form>
    </body>
    <html> 
      

  4.   


    <%@ Page Language="C#" AutoEventWireup="True" EnableViewState = "true"%>
    <%@ Import Namespace="System.Data" %>
    <html>
    <script runat="server">
     DataTable Cart;
     DataView CartView;
     ICollection CreateDataSource() 
     {
      DataTable dt = new DataTable();
      DataRow dr;
      
      dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
      dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
      dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
      
      for (int i = 0; i < 101; i++) 
      {
       dr = dt.NewRow();  
       dr[0] = i;
       dr[1] = "Item " + i.ToString();
       dr[2] = 1.23 * (i+1); 
       dt.Rows.Add(dr);
      }
      
      DataView dv = new DataView(dt);
      return dv;
      }  void Page_Load(Object sender, EventArgs e) 
      { 
       string js = "";
       js+="<script>\r\n";
       js+="function ld(){\r\n";
       js+="for(i=0;i<document.getElementsByName('RadioName').length;i++)\r\n";
       js+="if(document.getElementsByName('RadioName')[i].value==";
       js+="document.getElementById('" + rd.ClientID + "').value) ";
       js+="document.getElementsByName('RadioName')[i].checked=true\r\n";
       js+="}\r\n";
       js+="window.onload=ld\r\n";
       js+="</"+"script>\r\n";
      this.RegisterStartupScript("js",js);
         if (!IsPostBack) 
         {
            ItemsGrid.DataSource = CreateDataSource();
            ItemsGrid.DataBind();
         }    
      } 
      void Grid_Change(Object sender, DataGridPageChangedEventArgs e) 
      {
         ItemsGrid.CurrentPageIndex = e.NewPageIndex;
         ItemsGrid.DataSource = CreateDataSource();
         ItemsGrid.DataBind();
      } 
      void btnClick(Object sender, EventArgs e) 
      {
       if(Request.Form["RadioName"] != null)
       {
       rd.Value = Request.Form["RadioName"].ToString();
        Label1.Text = "您所选择的是:<font color=red>" + Request.Form["RadioName"].ToString() +"</font>";
        }
      } 
      
    </script> 
    <body>
    <form runat="server" id=MM>
    <input type="hidden" id=rd runat=server/>
    <asp:DataGrid id="ItemsGrid" runat="server"
       BorderColor="black"  BorderWidth="1"
       CellPadding="3"  AllowPaging="true"
       AutoGenerateColumns="false"        
       OnPageIndexChanged="Grid_Change">
     <HeaderStyle BackColor="#00aaaa"></HeaderStyle>
     <PagerStyle Mode="NumericPages"></PagerStyle>  <Columns>
     <asp:TemplateColumn>
      <ItemTemplate>
       <input type=radio name="RadioName" value='<%# DataBinder.Eval(Container.DataItem, "IntegerValue")%>'/>
      </ItemTemplate>
     </asp:TemplateColumn> 
     <asp:BoundColumn HeaderText="数字列" DataField="IntegerValue"/> 
     <asp:BoundColumn HeaderText="字符串列" DataField="StringValue"/> 
     <asp:BoundColumn HeaderText="货币列" DataField="CurrencyValue" DataFormatString="{0:c}">
     <ItemStyle HorizontalAlign="right"></ItemStyle> 
     </asp:BoundColumn>
    </Columns>
    </asp:DataGrid>
    <br>
    <asp:Button id="Btn" Text="看你选择的" OnClick="btnClick" runat="server"/>
    <asp:Label id="Label1" Text="" runat="server"/>
    </form>
    </body>
    </html>
    我现在用的这个。
      

  5.   


    <ItemTemplate> 
      <input name="RadioButton1" type="radio" /><%# Eval("LeiBMCh") %>                 
      </itemtemplate>
      

  6.   

    楼主动态生成,那你没必要生成服务器控件,像5楼那样,直接生成HTML控件就可以了呀。