2009-05-04 20 views
7

posso aggiungere un attributo agli elementi in un elemento di RadioButtonList in questo modo:Aggiungendo "onclick" attributo ad ASP.NET voce dropdownlist

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

Tuttavia, quando provo ad aggiungere gli attributi a un controllo DropDownList doesn sembra funzionare. Mi aspetterei che fosse simile.

risposta

15

Questo non può essere eseguito allo stesso modo di una RadioButtonList, per un elenco a discesa, il nome evento dell'attributo corretto è "onchange" anziché "onclick". L'evento deve essere corredata di DropDownList sé e non gli articoli come segue:

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

Inoltre, questo è un po 'più complicato e richiede un costume funzione javascript per eseguire un'azione diversa a seconda dell'opzione selezionata. Ecco un esempio:

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

funzione Javascript personalizzato: questo presuppone che i valori per gli elementi a discesa sono "Carta di Credito" e "SendPayment".

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

Ho cambiato "onclick" in "onchange" e ancora non funziona. –

+1

Non deve essere collegato agli articoli, ma all'elenco stesso. –

+0

C'è un modo per collegarlo agli elementi come su un RadioButtonList? Questo è quello che sto cercando di ottenere. –

1

actualy per una DropDownList in ASP .Net, la proprietà che stai cercando è OnSelectedIndexChanged o OnTextChanged. Entrambi fanno lo stesso lavoro.

Spero che questo aiuto;)

+0

@Fox - quelli sono gli eventi lato server corretti. Tuttavia, sta cercando gli eventi collaterali del cliente. –

+0

Il mio male, mi dispiace. OnClick è quello sul lato client come hai detto ... –

Problemi correlati