2011-01-31 20 views
43

asp.netページでjavascriptを書きました。コードビハインドからjavascript関数を呼び出す方法

コードビハインド

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 

でAsp.netページ

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

私はどのように行うことができますか?それをやっての

+1

[コードビハインドからjavascript関数を呼び出す方法](http://stackoverflow.com/questions/4847819/how-to-call-javascript-function-from-code-behind) – outis

+2

本当にしますかコードビハインドから関数を呼び出すか、ページが読み込まれたときに関数を実行しますか?私はそれがあなたが望む最後の選択肢だと思います。 –

答えて

34

これは、コードの背後から1つ以上のJavaスクリプトメソッドを呼び出す方法です。 スクリプトマネージャを使用して、メソッドを順番に呼び出すことができます。以下の例を考えてみましょう。この第一の方法EnableControlsにおいて

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

()が呼び出されます。 次はアラートが表示されます。 次に、DisableControls()メソッドが呼び出されます。

63

一つの方法は、ClientScriptManagerを使用することです:

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

あなたの最善の方法のようですが、 "MyKey"は何ですか? –

+4

このキーは、同じスクリプトを2回発行するのを避けるための一意の識別子です。それは何でもかまいません。 – Jacob

12

あなたがこれを行うことが可能な非常に単純な方法があります。それはコードの背後からラベルコントロールにJavaScriptコードを注入することを含む。ここでのサンプルコードは、次のとおりです。

<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>"; 

は、ここに完全なコードをチェックアウト:http://softmate-technologies.com/javascript-from-CodeBehind.htm(死んで)インターネットアーカイブから
リンク:https://web.archive.org/web/20120608053720/http://softmate-technologies.com/javascript-from-CodeBehind.htm

+2

残念なことにリンクが壊れています:-( –

+0

この解決策を愛しています - それはほとんど浮気のように感じます私はそれがすべてのシナリオには適していないかもしれないと思うが、うまくいかないケースを考えるのは難しいです。 – cymorg

関連する問題