Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   ASPX (.net) (http://www.forosdelweb.com/f78/)
-   -   llamar a evento desde una funcion javascript (http://www.forosdelweb.com/f78/llamar-evento-desde-funcion-javascript-388055/)

anotherone 24/04/2006 08:39

llamar a evento desde una funcion javascript
 
Hola, mi duda es si es posible llamar a un metodo desde una función de javascript,por ejemplo al click de un boton.

mcEmmanuel 24/04/2006 14:11

Metodo
 
Si es posible.
Pero primero necesitas obtener desde el servidor la llamada al evento, lo puedes hacer de varias formas.

Una seria utilizar Page.GetPostBackClientHyperlink, con esta funcion obtienes el codigo en java script que ejecuta el evento del lado del servidor, por ejemplo
Page.GetPostBackClientHyperlink(Button1, "")
regresa
javascript:__doPostBack('Button1','')
El cual lo puedes utilizar

Otra forma seria mandar llamar a la funcion __doPostBack, pero te tendrias que asegurar de que exista, pues en un aspx no siempre existe, ademas de enviarle como parametro el clientId del control que quieres se ejecute el evento, esto para cuando utilises controles de usuario .ascx
si colocas un boton en la pagina y la ves en el navegador al ver el codigo fuente veras que no se escribe la funcion __doPostBack.

Para asegurate que asp escriba la funcion __doPostBack usa alguna de las siguientes funciones en el evento load de la pagina para que siempre se escriba la funcion __doPostBack en el html.

Page.GetPostBackClientHyperlink(Button1, "")
Page.GetPostBackEventReference(Button1, "")
Page.GetPostBackClientEvent(Button1, "")

En usas un linkbutton siempre se escribira la funcion.

Un saludo.

Stream 24/04/2006 15:01

Ea, en accion un microsoft certified professional :arriba:

Bueno.. mi respuesta ahi te va: te traer el objeto con javascript

Código:

var obj = document.getElementById("TuBoton_ClientID");
if (obj){
  obj.click(); 
}

Saludos

aupaneu 25/04/2006 02:11

Buenas.

¿Hay alguna manera de llamar desde JavaScript a una función (no a un evento) de Visual Basic .NET (una que esté hecha en .aspx.vb)?

En VB tengo:

Protected Sub prueba()
MsgBox("funcion VB")
End Sub

En Javascript quiero algo así como lo siguiente:

document.nombre_formulario.prueba();

Muchas gracias

Stream 25/04/2006 08:32

Puedes usar ajax... (esto si te proporciona acceder a un metodo desde el cliente al servidor sin hacer postback)

http://atlas.asp.net/Default.aspx?tabid=47

Anpiro 23/05/2006 03:39

A ver si me podeis echar un cable...
Yo lo que quiero es llamar a un metodo que esta en el codebehind, despues de haber ejecutado una funcion en javascript.

Tengo este codigo:
<script language="javascript">
function Validar()
{
if (confirm('¿Confirma que desea aceptar?'))
return true;
else
return false;
}
</script>

y este boton:
<input language="javascript" name="Button3" id="Button3" type="button" value="Reset" onclick="if (Validar()) __doPostBack('Button3','')" />

Es decir, una vez pinchado el boton, aparece el mensaje de confirmacion y si le doy a aceptar quiero que me ejecute esta funcion que tengo en el codebehind:
protected void Reset_Click(object sender, EventArgs e)
{
...
}

¿Como lo hago?

aupaneu 23/05/2006 04:56

Tienes que poner:

En el onload por ejemplo:

me.boton3.Attributes.Add("onclick", "javascript:return Validar();")

si la función de javascript te devuleve false, no te va a ejecutar el método "Reset".


Espero que te sirva.

saludos.

Anpiro 23/05/2006 08:40

Cita:

Iniciado por aupaneu
Tienes que poner:

En el onload por ejemplo:

me.boton3.Attributes.Add("onclick", "javascript:return Validar();")

si la función de javascript te devuleve false, no te va a ejecutar el método "Reset".


Espero que te sirva.

saludos.

Donde lo tengo que poner? Lo siento pero no te he entendido, gracias por contestar :)

Anpiro 24/05/2006 01:00

Cita:

Iniciado por aupaneu
Tienes que poner:

En el onload por ejemplo:

me.boton3.Attributes.Add("onclick", "javascript:return Validar();")

si la función de javascript te devuleve false, no te va a ejecutar el método "Reset".


Espero que te sirva.

saludos.

O no te entiendo yo o no me has ententido tu. ;)

aupaneu 24/05/2006 01:08

Perdona, rectifico.

De todas formas te advierto que utilizo el aspbutton, con el button de html no me sale.Ahi va:

VB:

Partial Class _Default
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.Button1.Attributes.Add("onclick", "javascript:return validar();")
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox("La función JS devuelto TRUE")
End Sub
End Class

ASP:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Página sin título</title>
<script>
function validar()
{
if (confirm('¿Confirma que desea aceptar?'))
return true;
else
return false;
}

</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Button" />&nbsp;</div>
</form>
</body>
</html>

Así funciona (lo he probado), pero no se si a ti te servirá...


Saludos.

Anpiro 25/05/2006 02:52

aupaneu me has dado una idea ;D y lo he solucionado de esta manera:

<script>
function Validar()
{
if (confirm('¿Confirma que desea restaurar todos los valores predeterminados?'))
return true;
else
return false;
}
</script>

He creado un boton (que se ejecuta en el cliente) y un link (que se ejecuta en el servidor) d este modo:

<input language="javascript" onclick="if(Validar()) __doPostBack('Reset','')" value ="Reset"/>
<asp:LinkButton ID="Reset" runat="server" OnClick="Reset_Click"></asp:LinkButton>
Este link, ejecuta la funcion Reset_Click, en caso que le demos a aceptar en el confirm de javascript. Como no hay ningun enlace puesto, quedara transparente al diseño.

Gracias aupaneu :)

aupaneu 25/05/2006 02:56

Pues de nada!!:si:

chascos69 09/04/2008 00:02

Re: llamar a evento desde una funcion javascript
 
Donde colocas esto de la web exactamente?: <input language="javascript" onclick="if(Validar()) __doPostBack('Reset','')" value ="Reset"/>

Que tiene la función Reset_click?

Si puedes pon todo el código final...

alerchi 22/05/2008 11:58

Respuesta: llamar a evento desde una funcion javascript
 
Mil gracias por este post!! :aplauso:

CiberDrago 07/01/2009 09:36

Respuesta: llamar a evento desde una funcion javascript
 
Cita:

Iniciado por Stream (Mensaje 1516907)
Ea, en accion un microsoft certified professional :arriba:

Bueno.. mi respuesta ahi te va: te traer el objeto con javascript

Código:

var obj = document.getElementById("TuBoton_ClientID");
if (obj){
  obj.click(); 
}

Saludos

Sin duda la mejor respuestas de todas x_x, me sirvio mucho mucho xD gracias


La zona horaria es GMT -6. Ahora son las 18:00.

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