2011-06-29 17 views
0

サーバからjQuery関数を呼び出したい。
functionを呼び出すサーバー側のボタンがUpdatePanelの内側にあります。サーバからjQuery関数を呼び出す(UpdatePanelで)

//Button Click handler (It is inside Updatepanel) 
string ScriptName = null; 
ScriptName = "function pageLoad(sender, args) { if (args.get_isPartialLoad()) {DisplayMessage(); }}"; 
ScriptManager.RegisterStartupScript(this, GetType(), "DisplayMessage", ScriptName, true); 

、これは、クライアント側の機能である:
これは、サーバー側の機能である

<script type="text/javascript"> 
     function DisplayMessage() { 
      //Alert("Called"); 

     } 
</script> 

それは動作しません。
どういうところが間違っていますか? (私の質問や問題がクリアされている?)私にとっては完全に罰金以下の作品として、奇妙な

+1

「DisplayMEssage」と呼ぶと、大文字のE? – Marthin

+0

DisplayMEssageはJavascriptの機能ではないスクリプトの名前です – Shahin

+0

コードを更新しました。変わりはない。 – Shahin

答えて

3

:また

<%@ Page Language="C#" %> 
<script type="text/c#" runat="server"> 
    protected void BtnTrigger_Click(object sender, EventArgs e) 
    { 
     string script = "function pageLoad(sender, args) { if (args.get_isPartialLoad()) {DisplayMessage(); }}"; 
     ScriptManager.RegisterStartupScript(
      this, 
      GetType(), 
      "DisplayMEssage", 
      script, 
      true 
     ); 
    } 
</script> 

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <title></title> 
    <script type="text/javascript"> 
     function DisplayMessage() { 
      alert('called'); 
     } 
    </script> 
</head> 
<body> 
    <form id="Form1" runat="server"> 
     <asp:ScriptManager ID="scm" runat="server" /> 

     <asp:LinkButton 
      ID="BtnTrigger" 
      runat="server" 
      Text="Trigger" 
      OnClick="BtnTrigger_Click" 
     /> 

     <asp:UpdatePanel ID="up" runat="server"> 
      <Triggers> 
       <asp:AsyncPostBackTrigger 
        ControlID="BtnTrigger" 
        EventName="Click" 
       /> 
      </Triggers> 
     </asp:UpdatePanel> 
    </form> 
</body> 
</html> 

あなたが本当にすべての複雑なスクリプトが必要なのは、なぜ単にstring script = "DisplayMessage();";を使うのか?

+0

BtnTriggerをupdatepanelに入れてください。 私の場合、jquery関数を呼び出すボタンはupdatepanelにあります。 とupdatepanel childrenastriggerのプロパティがtrueに設定されている – Shahin

+0

@shaahin、私はそれをして、それは素晴らしい仕事をした。 –

+0

ありがとうございます。私の状態ではどのように問題を見つけることができますか? – Shahin

0

ページ内にdisplay:none divを作成します。それを更新パネルに入れてください。これはあなたのデザインを妨げることはありません。ページ内のすべてのsclient側スクリプトを実行する

<div id="scriptContainer" runat="server" style="display:none;"></div> 

次に、jsをイベントに貼り付けます。

scriptContainer.innerHTML = "<script type=text/javascript>DisplayMessage();</script>"; 

希望します。

関連する問題