2011-01-31 18 views
43

Escribí un javascript con una página asp.net.Cómo llamar a la función javascript desde código subyacente

En Asp.net Página

<HTML> <HEAD> 
    <script type="text/javascript"> 
     function Myfunction(){ 
      document.getElementId('MyText').value="hi"; 
     } 
     </script> 
</HEAD> <BODY> 
<input type="text" id="MyText" runat="server" /> </BODY> 

En código subyacente

Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) 
    Handles Me.Load 
     If Session("My")= "Hi" Then 
      I want to call "Myfunction" javascript function 
     End If 
End Sub 

¿Cómo puedo hacer?

+1

posible duplicado de [Cómo llamar a la función de JavaScript desde código subyacente] (http://stackoverflow.com/questions/4847819/how-to-call-javascript-function-from-code-behind) – outis

+2

¿De verdad lo hace? ¿Desea llamar a la función desde el código subyacente o desea que la función se ejecute cuando se carga la página? Creo que es la última alternativa que quieres. –

Respuesta

34

Esta es una forma de invocar uno o más métodos de script java desde el código subyacente. Al utilizar el Administrador de scripts, podemos llamar a los métodos en secuencia. Considere el siguiente ejemplo de loc foe.

ScriptManager.RegisterStartupScript(this, typeof(Page), "UpdateMsg", 
    "$(document).ready(function(){EnableControls(); 
    alert('Overrides successfully Updated.');DisableControls();});", true); 

En este primer método se invoca EnableControls(). A continuación, se mostrará la alerta. A continuación, se invocará el método DisableControls().

63

Una forma de hacerlo es utilizar el ClientScriptManager:

Page.ClientScript.RegisterStartupScript(
    GetType(), 
    "MyKey", 
    "Myfunction();", 
    true); 
+0

Parece que la mejor manera es la suya, pero ¿qué es "MyKey"? –

+4

La clave es solo un identificador único que ayuda a evitar emitir el mismo script dos veces. Puede ser cualquier cosa. – Jacob

12

Hay una manera muy sencilla en la que usted puede hacer esto. Implica inyectar un código de JavaScript a un control de etiqueta desde el código subyacente. Aquí es código de ejemplo:

<head runat="server"> 
    <title>Calling javascript function from code behind example</title> 
     <script type="text/javascript"> 
      function showDialogue() { 
       alert("this dialogue has been invoked through codebehind."); 
      } 
     </script> 
</head> 

..........

lblJavaScript.Text = "<script type='text/javascript'>showDialogue();</script>"; 

Salida del código completo aquí: http://softmate-technologies.com/javascript-from-CodeBehind.htm (muertos)
Enlace de Internet Archive: https://web.archive.org/web/20120608053720/http://softmate-technologies.com/javascript-from-CodeBehind.htm

+2

Lamentablemente, el enlace está roto :-( –

+0

Amar esta solución, casi parece una trampa. Sospecho que puede no ser adecuado para todos los escenarios, pero me cuesta pensar en un caso en el que no funcione. – cymorg

Cuestiones relacionadas