Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   control asp.net en funcion javascript ...??... (http://www.forosdelweb.com/f29/control-asp-net-funcion-javascript-289260/)

kansaki 15/04/2005 16:15

control asp.net en funcion javascript ...??...
 
hola

consulta un control asp.net pude llamar una funcion hecha en javascript, si se puede como se hace.

nota: el control asp que uso es un calendario

de ante mano gracias por la ayuda

RootK 15/04/2005 16:29

Claro que puedes hacerlo... :arriba:

Puedes agregarle atributos desde tu codebehind..

algo así:

Cita:

tu_control.Attributes.Add("evento","eventoJavascript();")

donde evento puede ser, onclick, onblur, onchange..etc..

Salu2 :cool:

rodri 16/04/2005 16:26

Duda
 
Tengo una pequeña duda, al hacer el Attributes.Add, ocurre de que se pierden eventos como los validadores, por ejemplo yo hago un Attributes.Add("onclick","return confirm(' Pregunta');"); y bueno es para preguntar antes de hacer algo, pero si es que los datos no están correctos no me tira un ValidationSummary que utilizo para lanzar una alerta de validación, concreto:
Como hago para que al cargarle en el método Control.Attributes.Add(); cualquier funcion javascript, persistan otras funciones asignadas al mismo evento ya del lado del servidor? (en este caso un OnClick)

xknown 16/04/2005 23:10

Cita:

Iniciado por rodri
Tengo una pequeña duda

Por qué no lo pusiste en un nuevo mensaje??

Bueno, el "problema" radica en la forma en la que son añadidos dichos atributos por el .Net Framework, te pongo el ejemplo para el caso de la validación:

Añade el evento onclick del botón* en el lado del cliente
Código:

Button1.Attributes.Add("onclick","return confirm('Estas Seguro');");
Si es que no se utiliza ningún validador o la propiedad CausesValidation del botón* está en false, generaría este código:
Código:

<input ... onclick="return confirm('Estas Seguro');" ... />
Caso contrario, generaría el siguiente código:
Código:

<input ... onclick="return confirm('Estas Seguro');if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); " ... />
Y si estás familirarizado con javascript, observerás que sólo se va a ejecutar "return confirm('Estas Seguro');", por consiguiente no se realiza la validación.

Para "solucionar" esto, lo que puedes hacer es poner la propiedad CausesValidation del botón* en false, para evitar que se añada lo siguiente al evento onclick: "if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate();"

Entonces tu código quedaría de esta forma:

Código:

Button1.Attributes.Add("onclick", "if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate();return confirm('Estas Seguro');");
botón*: puede ser cualquier control que acepte la propiedad Attributes y haga un postback

Cita:

Iniciado por rodri
Como hago para que al cargarle en el método Control.Attributes.Add(); cualquier funcion javascript, persistan otras funciones asignadas al mismo evento ya del lado del servidor? (en este caso un OnClick)

Sólo el interés de saber como funcionan las cosas http://forosdelweb.com/images/smilies/ojotes.gif.

Saludos


La zona horaria es GMT -6. Ahora son las 05:25.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.