Foros del Web » Programación para mayores de 30 ;) » .NET »

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

Estas en el tema de control asp.net en funcion javascript ...??... en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/04/2005, 16:15
 
Fecha de Ingreso: noviembre-2004
Mensajes: 42
Antigüedad: 19 años, 5 meses
Puntos: 0
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
  #2 (permalink)  
Antiguo 15/04/2005, 16:29
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Claro que puedes hacerlo...

Puedes agregarle atributos desde tu codebehind..

algo así:

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

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

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 16/04/2005, 16:26
Avatar de rodri  
Fecha de Ingreso: febrero-2005
Mensajes: 406
Antigüedad: 19 años, 2 meses
Puntos: 2
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)
__________________
0.o Rodri
  #4 (permalink)  
Antiguo 16/04/2005, 23:10
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 3 meses
Puntos: 7
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 .

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño

Última edición por xknown; 16/04/2005 a las 23:16
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:06.