2014-12-16 3 views
1

Мне нужно добавить функцию javascript для нескольких радиокнопок, отображаемых с помощью списка переключателей. Вместо этого они добавляются к диапазону, создаваемому динамически. См. Коды.Добавление атрибутов радиокнопкам radioobuttonlist

RAW HTML/ASPX

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 

    <script type="text/javascript"> 
     function DisplayAlert() { 
      alert('hahahahahahahahhahah'); 

     } 
</script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    <asp:RadioButtonList runat="server" ID="rblAmit" AutoPostBack="false" 
    DataTextField="Name" DataValueField="Id"> </asp:RadioButtonList> 
     </div> 
    </form> 
</body> 

Вынесено HTML

<div> 
    <table id="rblAmit"> 
    <tr> 
     <td><span onchange="javascript:DisplayAlert();"><input id="rblAmit_0" type="radio" name="rblAmit" value="A1" /><label for="rblAmit_0">Amit</label></span></td> 
    </tr><tr> 
     <td><span onchange="javascript:DisplayAlert();"><input id="rblAmit_1" type="radio" name="rblAmit" value="A2" /><label for="rblAmit_1">Ranjan</label></span></td> 
    </tr><tr> 
     <td><span onchange="javascript:DisplayAlert();"><input id="rblAmit_2" type="radio" name="rblAmit" value="A3" checked="checked" /><label for="rblAmit_2">Senior</label></span></td> 
    </tr><tr> 
     <td><span onchange="javascript:DisplayAlert();"><input id="rblAmit_3" type="radio" name="rblAmit" value="A4" /><label for="rblAmit_3">Software</label></span></td> 
    </tr><tr> 
     <td><span onchange="javascript:DisplayAlert();"><input id="rblAmit_4" type="radio" name="rblAmit" value="A5" /><label for="rblAmit_4">Engineer</label></span></td> 
    </tr> 
</table> 

    </div> 

CS-Codebehind

private void FireEventOnLoad() 
{ 

    foreach (ListItem item in rblAmit.Items) 
    { 
     item.Attributes.Add("onchange", "javascript:DisplayAlert();"); 
    } 

    if (rblAmit.Items.FindByText("Senior") != null) 
    { 
     rblAmit.Items.FindByText("Senior").Selected = true; 
    } 
} 

ИЛИ

В любом случае, так что я могу перечислить Radiobuttons из RadioButtonList. Текущий я получаю список пары ключевых значений.

ответ

1

События OnChange связаны с элементами, значение атрибута значения которых может измениться. Вместо этого вы можете использовать событие onclick, и это будет делегировать элемент ввода под диапазоном.

private void FireEventOnLoad() 
{ 

    foreach (ListItem item in rblAmit.Items) 
    { 
     item.Attributes.Add("onclick", "javascript:DisplayAlert();"); 
    } 

    if (rblAmit.Items.FindByText("Senior") != null) 
    { 
     rblAmit.Items.FindByText("Senior").Selected = true; 
    } 
} 
0

Используйте JQuery для этого. Дайте идентификатор контейнеру DIV.

Напишите функцию Javascript и вызовите эту функцию при обновлении списка радиообмена.

Часть функции яваскрипта -

$('#container :radio').each(function(){ 
// attach onclick event. 
}); 
Смежные вопросы