2012-06-15 91 views
3

我只想選擇一個單選按鈕,但我不能這樣做。 這裏是我的代碼:中繼器中只有一個單選按鈕選擇

<asp:Repeater ID="Repeater_secenekler" runat="server" DataSource='<%#Eval("Secenekler")%>'> 
    <HeaderTemplate> 
     <table> 
    </HeaderTemplate> 
    <ItemTemplate> 
     <tr> 
      <td style="margin-left: 20px;"> 
       <asp:CheckBox ID="CheckBox" runat="server" Text='<%#Eval("OptionName")%>' Visible='<%# Eval("TypeId").ToString() == "1" %>' /> 
       <asp:RadioButton ID="RadioButton" runat="server" Text='<%#Eval("OptionName")%>' Visible='<%# Eval("TypeId").ToString() == "2" %>' 
        GroupName="RadioButtonGrup" /> 
      </td> 
     </tr> 
    </ItemTemplate> 
    <FooterTemplate> 
     </table> 
    </FooterTemplate> 
</asp:Repeater> 

我可以選擇具有相同組名的所有單選按鈕,但我不想這樣。我只想要一個選擇。

我該怎麼做。 謝謝。

回答

14

這是一個衆所周知的缺陷與ASP.NET直放站使用單選按鈕:

http://support.microsoft.com/default.aspx?scid=kb;en-us;Q316495

有可用的補丁在這裏:

http://www.ifinity.com.au/Blog/EntryId/87/Simple-fix-for-Radio-Button-controls-in-an-ASP-NET-Repeater-using-jQuery

jQuery("[name$='$optValue']").attr("name",jQuery("[name$='$optValue']").attr("name")); 

jQuery("[name$='$optValue]").click(function(){ 
       //set name for all to name of clicked 
       jQuery("[name$='$optValue]").attr("name", this.attr("name")); 
      }); 
+2

大聲歡呼......有一個甜甜圈;-) – musefan

8

只是快速修復上述答案,以便腳本執行時不會出現任何錯誤。

$(function() { 
    $('[name$="$YourGroupName"]').attr("name", $('[name$="$YourGroupName"]').attr("name")); 

    $('[name$="$YourGroupName"]').click(function() { 
     //set name for all to name of clicked 
     $('[name$="$YourGroupName"]').attr("name", $(this).attr("name")); 
    }); 
}); 
+0

其實前面的解決方案並沒有爲我工作,直到你(@xfan)取得此修復程序。謝謝!! –

+0

謝謝!這個答案清除了我的問題與修復權利。 –

+0

爲什麼不只是將所有單選按鈕的名稱屬性設置爲相同的值並將其保留在那? – Djorge

相關問題