2009-05-04 17 views
7

mogę dodać atrybut do elementów w pozycji RadioButtonList tak:Dodanie „onclick” przypisują ASP.NET DropDownList poz

PaymentMethodDropDownList.Items[0].Attributes.Add("onclick", "javascript:showNoMethods();"); 
PaymentMethodDropDownList.Items[1].Attributes.Add("onclick", "javascript:showCreditCardMethod();"); 
PaymentMethodDropDownList.Items[2].Attributes.Add("onclick", "javascript:showSendPaymentMethod();"); 

Jednak gdy próbuję dodać atrybuty do kontroli DropDownList nie robi wydaje się działać. Spodziewałbym się, że będzie podobny.

Odpowiedz

15

Nie można tego zrobić w taki sam sposób, jak radioButtonList, dla listy rozwijanej prawidłową nazwą zdarzenia atrybutu jest "onchange" zamiast "onclick". Impreza powinny być dołączone do DropDownList Itself i nie elementów następująco:

PaymentMethodDropDownList.Attributes.Add("onchange", 
              "showCreditCardMethod();"); 

Ponadto, jest to trochę bardziej skomplikowane i wymaga niestandardowych funkcji javascript, aby wykonać inną czynność w zależności od wybranej opcji. Oto przykład:

PaymentMethodDropDownList.Attributes.Add("onchange", 
              "handleDropDownEvents(this);"); 

funkcja niestandardowa Javascript: ten zakłada, że ​​wartości dla elementów rozwijanych są „CreditCard” i „SendPayment”.

<script type="text/javascript"> 
    function handleDropDownEvents(e){ 
     if(e.value == "CreditCard"){ 
     showCreditCardMethod(); 
     } 
     else if(e.value == "SendPayment"){ 
     showSendPaymentMethod(); 
     } 
    } 
</script> 
+0

Zmieniłem "onclick" na "onchange" i nadal nie działa. –

+1

Nie należy go dołączać do elementów, ale do samej listy. –

+0

Czy istnieje sposób, w jaki mogę dołączyć go do elementów takich jak RadioButtonList? Właśnie to próbuję osiągnąć. –

1

właściwie dla DropDownList w ASP .NET, właściwość szukasz jest OnSelectedIndexChanged lub OnTextChanged. Oba robią całkiem tę samą pracę.

Mam nadzieję, że ta pomoc;)

+0

@Fox - są to prawidłowe zdarzenia po stronie serwera. Jednak On szuka wydarzeń po stronie klienta. –

+0

Moje złe, przepraszam. OnClick jest po stronie klienta, jak powiedziałeś ... –

Powiązane problemy