2009-05-04 43 views
7

puedo añadir un atributo a los elementos de un elemento RadioButtonList así:"onclick" atributo a ASP.NET DropDownList elemento

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

Sin embargo, cuando intento agregar los atributos de un control DropDownList que doesn Parece que funciona Yo esperaría que sea similar.

Respuesta

15

Esto no se puede hacer de la misma manera que una radioButtonList, para una lista desplegable, el nombre de evento de atributo correcto es "onchange" en lugar de "onclick". El evento debe estar unido a DropDownList en sí y no los elementos de la siguiente manera:

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

Además, este es un poco más complicado y requiere una costumbre función javascript para llevar a cabo una acción diferente en función de la opción seleccionada. He aquí un ejemplo:

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

función Javascript personalizado: esto supone que los valores de los elementos desplegables son "Tarjeta de crédito" y "SendPayment".

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

Cambié "onclick" a "onchange" y todavía no funciona. –

+1

No debe adjuntarse a los elementos, sino a la propia lista. –

+0

¿Hay alguna manera de adjuntarlo a elementos como RadioButtonList? A eso es a lo que trato de llegar. –

1

podía comprender para un DropDownList en ASP .Net, la propiedad que estás buscando es OnSelectedIndexChanged o OnTextChanged. Ambos hacen el mismo trabajo.

Espero que esta ayuda;)

+0

@Fox: esos son los eventos correctos del lado del servidor. Sin embargo, él está buscando eventos del lado del cliente. –

+0

Lo siento, lo siento. OnClick es el del lado del cliente como dijiste ... –

Cuestiones relacionadas