2010-04-22 68 views
5

Me gusta llamar a una función de JavaScript desde C#. ¿Alguien puede darme un fragmento de código?Cómo llamar a la función javascript desde C#

Más detalles ...

Tengo una página asp.net que tiene un botón asp. cuando hago clic en ese botón, me gusta llamar a la función JavaScript.

como sabia ....

en mi página de asp.net,

<button id="save" onclick="i like to call a method resides in asp.net page'>Save</button> 

Más y más detalles ... cuando se haga clic en el botón de asp.net, me gusta realizar algún servidor acción lateral y luego desea llamar a una función de javascript desde allí mismo ...

+4

¿Esto es dentro de una página ASP.NET? Una aplicación de escritorio? Se necesita más contexto para qué tipo de proyecto de C# se llama. –

+2

Es posible que desee completar su respuesta un poco; es un poco vago –

+2

No está técnicamente llamando a Javascript desde C# ... solo quiere tener un botón asp.net llamado Javascript, La respuesta de Mikael Svenson es la forma de lograr ese posible duplicado de http://stackoverflow.com/questions –

Respuesta

9

Para una asp:button utiliza OnClientClick

<asp:Button id="myid" runat="server" OnClientClick="alert('test')" /> 
3

No se puede "invocar" una función de Javascript desde ASP.NET C# code-behind. Puede escribir Javascript adicional en la página web. En el momento en que la página se devuelve al usuario y el Javascript existe, su código subyacente ya no existe. Usted puede escribir a un literal o hacer un Response.Write()

Response.Write("<script language='javascript'>alert('Hellow World');</script>"); 
+0

Solo estoy adivinando que está hablando de ASP.NET ... se basa en sus preguntas anteriores –

+0

+1 para Response.Write(), que es más C# -calling-JS que páginas ASPX. Un poco sorta. –

+0

Response.Write() parece agregar ese código en la parte superior de la página generada, arriba de las etiquetas html, lo que deja la página con errores. ¿Estoy haciendo algo mal? –

6

En el supuesto de que usted está de codificación en ASP.NET (incluyendo MVC), llamando a una función de JavaScript que significaría la incorporación de la llamada en JavaScript en el código ASPX, así:

<script type="text/javascript"> 
    doSomething(); 
</script> 

usted tiene la oportunidad de pasar información de su C# para la llamada JS, del mismo modo que tienen cualquier otro código de alterar los resultados de su ASPX:

<script type="text/javascript"> 
    doSomething("<%= GetSomeTextFromCSharp(); %>"); 
</script> 

Esto realmente está ampliando la definición de "llamar JavaScript desde C#". Lo que está haciendo es tener su código C#/ASPX generando HTML/JavaScript, que luego el navegador interpreta como lo haría con cualquier otro HTML/JS (independientemente de cómo se haya generado).

Quizás podría explicar lo que está tratando de hacer un poco más.

+0

+1 Está solicitando llamar a JavaScript desde C#, pero su método es TÉCNICAMENTE la forma preferida de hacerlo entre desarrolladores experimentados –

+0

De acuerdo ... no es la respuesta más exacta a su pregunta, pero es la mejor práctica. –

1

Sarathi, en función de su reciente actualización, no está claro si necesita alguna interacción con C#. Su <button> parece ser estrictamente del lado del cliente (es decir, HTML) sin interacción ASP.NET dentro de él. Para llamar a su función de JavaScript que le conecta la llamada de función al atributo onclick del botón de la etiqueta:

<button id="save" onclick="mySaveFunction();'>Save</button> 

Tenga en cuenta que mySaveFunction() sólo necesita ser definido en la pila de carga del navegador para la página actual. Eso significa que podría ser definido en cualquiera de:

  • La página ASPX que contiene la La página <button>
  • Maestro para la página actual ASPX
  • Uno de los controles de usuario (o parciales MVC) cargado por el página actual ASPX
  • Un archivo JavaScript externo que se carga por uno de los anteriores.

Por último, me gustaría reiterar que no hay nada particularmente específico de C#/ASP.NET sobre esto. Podría hacer lo mismo con cualquier idioma/marco, incluidos los archivos HTML estáticos. Su pregunta parece ser completamente dependiente de JavaScript.

1

Para el objeto de la ventana:
http://msdn.microsoft.com/en-us/library/ms536420%28VS.85%29.aspx

window.execScript

Para la página pbject:
http://msdn.microsoft.com/en-us/library/dfbt9et1%28v=VS.71%29.aspx

RegisterClientScriptBlock

RegisterOnSubmitStatement

RegisterStartupScript

etc ...

+1

Corrígeme si me equivoco, pero ¿no es window.execScript IE solo? –

+0

+1 @Craig Walker Este artículo indica que este es un método solo de IE: http://ajaxian.com/archives/evaling-with-ies-windowexecscript –

4

he intentado con este código funciona para mí comprobar si ayuda

1)

Page.ClientScript.RegisterStartupScript(this.GetType(), "click", "alert('Informations');", true); 

La otra forma es llamar al ja vascript método que está escrito en la página de origen

Page.ClientScript.RegisterStartupScript(this.GetType(), "click", "xyz();", true); 
1

puede llamar a la función Javascript de código detrás de la página ..for ejemplo, usted tiene closewindow parte de definición de función en javasript..if desea ejecutar esta función, puede escribir siguiente codificaciones en cualquier evento de clic en el código detrás de la página ...

ClientScript.RegisterClientScriptBlock(GetType(), "close", "<script language=javascript>Closewindow();</script>", false); 
Cuestiones relacionadas