2010-07-23 6 views
0

Lorsque j'essaie de lier un bouton radio dans un datalist, il devient multisélect puisque sa propriété de nom devient différente même lorsque j'ai utilisé GroupName pour être identique.Les boutons radio ne fonctionnent pas lorsqu'ils sont associés au contrôle DataList

Comment puis-je le faire agir comme bouton radio seulement.

<asp:DataList ID="dlRoomNo" runat="server" RepeatColumns="4"> 
     <ItemTemplate> 
      <div class="orboxfour"> 
       <ul class="boxfour"> 
        <li> 
         <asp:RadioButton ID="rdoRoomNo" GroupName="roomNo" 
Text='<%#Eval("Room No")%>' runat="server" /> 
        </li> 
       </ul> 
      </div>      
     </ItemTemplate> 
    </asp:DataList> 

Répondre

0

Il y a un certain nombre de suggestions dans les réponses à this question. Je l'ai résolu avec un peu de jQuery, bien que la façon dont je l'ai fait n'est probablement pas la meilleure façon!

Dans mon code, j'ai un bloc de script avec

function SetUniqueRadioButton(current) 
{ 
    $('input:radio').attr('checked', false); 

    current.checked = true; 
} 

puis attaché le script à un bouton radio dans mon code-behind en cas ItemDataBound

String uniqueRadioButtonScript; 
RadioButton radioButton; 

uniqueRadioButtonScript = "javascript:SetUniqueRadioButton(this);"; 

if (e.Row.RowType == DataControlRowType.DataRow) 
{ 
    radioButton = (RadioButton)e.Row.FindControl("MyRadioButton"); 

    radioButton.Attributes.Add("onclick", uniqueRadioButtonScript) 
} 
0

la meilleure option est comme ceci: 1. script Ajouter

function fnrad(rbtn) { 


      var radioList = document.getElementsByTagName("input"); 

      for (var i = 0 ; i < radioList.length; i++) { 

       if (radioList[i].type == "radio") { 

        radioList[i].name = 'a'; 
        radioList[i].setAttribute("Checked",""); 

       } 
      } 

      rbtn.setAttribute("Checked", "checked"); 
     } 

Datalist sera comme ceci:

<asp:DataList ID="dlEmails" RepeatLayout="Flow" runat="server"> 
     <HeaderTemplate> 
      <table> 
       <tr> 
        <th>Select Email Address </th> 

        <th>Status</th> 

       </tr> 
     </HeaderTemplate> 
     <ItemTemplate> 

      <tr> 
       <td> 

        <asp:RadioButton ID="rbtnSelect" Text='<%#Eval("Emails") %>' onclick='fnrad(this);' GroupName="a" Checked='<%#Eval("Primary") %>' runat="server" /><br /> 
        (<asp:Label ID="lblId" runat="server" Text='<%#Eval("Verified") %>'> </asp:Label>) 
       </td> 

       <td valign="middle"> 
        <asp:Label ID="Label2" Style="display: none;" runat="server" Text='<%#Eval("Id") %>'> </asp:Label> 
        <asp:Label ID="Label1" runat="server" Text='<%#Eval("Main") %>'> </asp:Label> 

       </td> 

      </tr> 


     </ItemTemplate> 
     <FooterTemplate> 
      </table> 

     </FooterTemplate> 
    </asp:DataList> 
Questions connexes