サービス側管理クライアントスクリプト-Page.ClientScript


Page.ClientScriptt-スクリプトの管理、スクリプトの登録、およびページへのスクリプトの追加に使用するClientScriptManagerオブジェクトを取得します.
ClientScriptManagerクラスの説明:クライアント・スクリプトを管理する方法をWebアプリケーションで定義します.
WebページのHTMLタグにスクリプトを含めることで、クライアントスクリプトをWebページに宣言して追加できます.ただし、クライアント・スクリプトを動的に追加する必要がある場合があります.スクリプトを動的に追加するには、スクリプトを追加する時間と方法に応じて、RegisterClientScriptBlockメソッド、RegisterClientScriptIncludeメソッド、RegisterStartupScriptメソッド、またはRegisterOnSubmitStatementメソッドを使用します.
一.ASP.NET Webページでクライアントスクリプトを動的に追加します.
サーバー・コードを使用して、ページにクライアント・スクリプトを追加します.クライアント・スクリプトの内容が、実行時まで使用可能な情報に依存する場合、サーバ・コードを使用してクライアント・スクリプトを作成すると便利です.クライアント・スクリプトを次の場合に実行する場合は、ページにクライアント・スクリプトを動的に追加することも役立ちます.
ページのロードが完了すると
ユーザーがページをコミットするとき

  • 方法
    説明
    RegisterClientScriptBlock
    ページの上部にスクリプトブロックを追加します.スクリプトを文字列形式で作成し、メソッドに渡し、スクリプトをページに追加します.このメソッドを使用して、任意のスクリプトをページに挿入できます.スクリプトは、すべての要素が完了する前にページに表示される可能性があります.したがって、スクリプトからページのすべての要素を参照することはできません.
    RegisterClientScriptInclude
    RegisterClientScriptBlockメソッドと同様ですが、このメソッドには参照外部が追加されます.jsファイルのスクリプトブロック.他の動的に追加されたスクリプトの前にファイルを追加します.したがって、ページの要素の一部を参照できない場合があります.
    RegisterStartupScript
    ページにスクリプトブロックを追加します.このスクリプトブロックは、ページのロードが完了した後にページのonloadイベントを開始する前に実行されます.このスクリプトは通常、イベントハンドラまたは関数として作成されません.通常、実行する文は1回だけ含まれます.
    RegisterOnSubmitStatement
    応答ページのonsubmitイベントに応答して実行されるスクリプトを追加します.このスクリプトは、ページをコミットする前に実行され、コミットをキャンセルできます.

  • 次のコード例では、ユーザーがボタンをクリックしたときに実行するクライアント・スクリプトをページに追加する方法を示します.クライアント・スクリプトにポップアップ・ウィンドウが表示され、ユーザーに再送の確認を要求します.
    protected void Page_Load(Object sender, EventArgs e) { String scriptText = "return confirm('Do you want to submit the page?')"; ClientScript.RegisterOnSubmitStatement(this.GetType(),"ConfirmSubmit",scriptText); } 二.ASP.NET Webサーバコントロールクライアントスクリプトイベントを追加:HTML要素のようにASPに宣言できる.NET Webページのコントロールはクライアントスクリプトを追加します.あるいは、イベントやコードが実行時にのみ利用可能な情報に依存する場合には、プログラミングによりASP.NET Webサーバコントロールクライアントスクリプトイベントを追加します.2つの方法があります:1、ASPに声明の方式で向かいます.NETサーバコントロールクライアントイベントハンドラ<%@Page Language="C#"%>Untitled Page
    2、プログラミング方式でASP.NETコントロールクライアントイベントハンドラの追加
    protected void
     Page_Load(Object sender, EventArgs e)
    {
        String scriptText = "return confirm('Do you want to submit the page?')";
        ClientScript.RegisterOnSubmitStatement(this
    .GetType(), "ConfirmSubmit", scriptText);
    } 
    
    3.           Onclick   
    <asp:Button ID="Button1" Runat="server"OnClick="Button1_Click" OnClientClick="return confirm('Ready to submit.')" Text="Test Client Click" /> 
    
     ClientScriptManager     String  Type       。                   。                                 。
    ClientScriptManager
              。             。       ,         ASP.NET         。                。   GetCallbackEventReference
                    ,       ,                   。
    
    ClientScriptManager.GetCallbackEventReference   :             ;      ,                  。
    
    public string GetCallbackEventReference (     
     Control control, //            Control。        ICallbackEventHandler      RaiseCallbackEvent   。   
     string argument, //                   
     string clientCallback,//              ,                   。     
     string context,//                  。                。
    ) 
       <%@ Page Language="C#" %> <%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <mce:script runat="server"><!-- public int cbCount = 0; // Define method that processes the callbacks on server. public void RaiseCallbackEvent(String eventArgument) { cbCount = Convert.ToInt32(eventArgument) + 1; } // Define method that returns callback result. public string GetCallbackResult() { return cbCount.ToString(); } protected void Page_Load(object sender, EventArgs e) { // Define a StringBuilder to hold messages to output. StringBuilder sb = new StringBuilder(); // Check if this is a postback. sb.Append("No page postbacks have occurred."); if (Page.IsPostBack) { sb.Append("A page postback has occurred."); } // Write out any messages. MyLabel.Text = sb.ToString(); // Get a ClientScriptManager reference from the Page class. ClientScriptManager cs = Page.ClientScript; // Define one of the callback script's context. // The callback script will be defined in a script block on the page. StringBuilder context1 = new StringBuilder(); context1.Append("function ReceiveServerData1(arg, context)"); context1.Append("{"); context1.Append("Message1.innerText = arg;"); context1.Append("value1 = arg;"); context1.Append("}"); // Define callback references. String cbReference1 = cs.GetCallbackEventReference(this, "arg", "ReceiveServerData1", context1.ToString()); String cbReference2 = cs.GetCallbackEventReference("'" + Page.UniqueID + "'", "arg", "ReceiveServerData2", "", "ProcessCallBackError", false); String callbackScript1 = "function CallTheServer1(arg, context) {" + cbReference1 + "; }"; String callbackScript2 = "function CallTheServer2(arg, context) {" + cbReference2 + "; }"; // Register script blocks will perform call to the server. cs.RegisterClientScriptBlock(this.GetType(), "CallTheServer1", callbackScript1, true); cs.RegisterClientScriptBlock(this.GetType(), "CallTheServer2", callbackScript2, true); } // --></mce:script> <mce:script type="text/javascript"><!-- var value1 = 0; var value2 = 0; function ReceiveServerData2(arg, context) { Message2.innerText = arg; value2 = arg; } function ProcessCallBackError(arg, context) { Message2.innerText = 'An error has occurred.'; } // --></mce:script> <html > <head id="Head1" runat="server"> <title>ClientScriptManager Example</title> </head> <body> <form id="Form1" runat="server"> <div> Callback 1 result: <span id="Message1">0</span> <br /> Callback 2 result: <span id="Message2">0</span> <br /> <br /> <input type="button" value="ClientCallBack1" onclick="CallTheServer1(value1, alert('Increment value'))"/> <input type="button" value="ClientCallBack2" onclick="CallTheServer2(value2, alert('Increment value'))"/> <br /> <br /> <asp:Label id="MyLabel" runat="server"></asp:Label> </div> </form> </body> </html> ( MSDN)
    
    
                           ASP .NET Web     
    
                          Visual Studio     ASP .NET Web     
    
      ASP.NET                           Visual Studio     ASP .NET Web     
    
         ASP.NET                       ASP .NET Web     
    
         :  ASP.NET              ASP .NET Web     
    
               (C#)         ASP .NET Web