Вопрос по repeater, asp.net, radio-button – только один выбор радиокнопок в репитере

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>

Я могу выбрать все переключатели с тем же именем группы, но я не хочу этого. Я хочу только один выбор.

Как я могу это сделать. Благодарю.

Ваш Ответ

2   ответа
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"));
    });
});
Спасибо! Этот ответ очистил мои проблемы с исправлением прямо вверх.
Фактически, предыдущее решение не работало для меня, пока вы (@xfan) не исправили это. Спасибо!!
Почему бы просто не присвоить атрибуту имени всех переключателей одинаковое значение и оставить его на этом уровне?
14

Это хорошо известная ошибка в ретрансляторе ASP.NET с использованием RadioButtons:

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")); 
            });
отличный крик ... пончик ;-)

Похожие вопросы