ClientScriptManager クラス
アセンブリ: System.Web (system.web.dll 内)
 構文
構文 解説
解説ClientScriptManager クラスは、クライアント側スクリプトを管理し、これらを Web アプリケーションに追加する目的で使用されます。Page オブジェクトの ClientScript プロパティから、ClientScriptManager クラスへの参照を取得できます。
クライアント側スクリプトを Web ページの HTML マークアップに含めることで、宣言によってこのスクリプトを Web ページに追加できます。ただし、クライアント側スクリプトを動的に追加することが必要な場合もあります。スクリプトを動的に追加するには、RegisterClientScriptBlock、RegisterClientScriptInclude、RegisterStartupScript、または RegisterOnSubmitStatement の各メソッドを、スクリプトを追加するタイミングと方法に応じて使用します。詳細については、「方法 : ASP.NET Web ページにクライアント スクリプトを動的に追加する」を参照してください。
ClientScriptManager クラスは、キーの String と Type によって一意にスクリプトを識別します。同じキーと型を持つスクリプトは重複していると見なされます。スクリプトの型を使用することにより、同じページ上で使用される可能性のある異なるユーザー コントロールから実行される似たようなスクリプトが混同されることを防ぐことができます。
ポストバックを使用しないでクライアントからサーバー コードを実行する必要がある場合、ClientScriptManager クラスを使用して、クライアント コールバックを起動できます。これは、サーバーに対して帯域外コールバックを実行するとも言います。クライアント コールバックでは、クライアント スクリプト関数は ASP.NET Web ページに非同期要求を送信します。Web ページは、その通常の有効期間の変形バージョンで、コールバックを処理します。GetCallbackEventReference メソッドを使用して、クライアント側関数への参照を取得します。この関数が呼び出されると、サーバー側イベントに対するクライアント コールバックが開始されます。詳細については、「ASP.NET Web ページでポストバックせずにクライアント コールバックを実装する」を参照してください。
| .gif) メモ | 
|---|
| スクリプト コールバックは、Document Object Model (DOM) をサポートしないブラウザでは動作しません。また、クライアント側で ECMAScript が有効になっていることも必要です。クライアントのブラウザがコールバックをサポートしているかどうかをチェックするには、SupportsCallback プロパティを使用します。このプロパティには、ASP.NET 組み込み Request オブジェクトの Browser プロパティからアクセスできます。 | 
クライアント ポストバック イベントを定義するには、GetPostBackEventReference メソッドと GetPostBackClientHyperlink メソッドを使用します。これらのメソッドが呼び出されると、クライアント側スクリプト関数が、サーバーを介してページにポストバックを実行できる状態になります。クライアント ポストバック イベントは、Web ページが通常の有効期間を完了してクライアント ポストバック イベントを処理する点において、クライアント コールバックとは異なります。
| .gif) メモ | 
|---|
| Button コントロールを使用し、UseSubmitBehavior プロパティが false である場合に、GetPostBackEventReference メソッドを使用して、Button コントロールに対してクライアント ポストバック イベントを返すことができます。 | 
Button、ImageButton、およぴ LinkButton の各コントロールの OnClientClick プロパティを使用して、クライアント側スクリプトを実行できます。
 使用例
使用例ClientScriptManager クラスの RegisterClientScriptBlock メソッドの使用方法を示すコード例を次に示します。ページには 2 つのクライアント側スクリプトが定義されています。ページが読み込まれる際に、クライアント側の警告メッセージを表示する PopupScript と、onClick イベントに対するクライアント側ハンドラを定義する ButtonClickScript です。
<%@ Page Language="VB" %> <script runat="server"> Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) ' Define the name and type of the client scripts on the page. Dim csname1 As String = "PopupScript" Dim csname2 As String = "ButtonClickScript" Dim cstype As Type = Me.GetType() ' Get a ClientScriptManager reference from the Page class. Dim cs As ClientScriptManager = Page.ClientScript ' Check to see if the startup script is already registered. If (Not cs.IsStartupScriptRegistered(cstype, csname1)) Then Dim cstext1 As String = "alert('Hello World');" cs.RegisterStartupScript(cstype, csname1, cstext1, True) End If ' Check to see if the client script is already registered. If (Not cs.IsClientScriptBlockRegistered(cstype, csname2)) Then Dim cstext2 As New StringBuilder() cstext2.Append("<script type=text/javascript> function DoClick() {") cstext2.Append("Form1.Message.value='Text from client script.'} </") cstext2.Append("script>") cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), False) End If End Sub </script> <html> <head> <title>ClientScriptManager Example</title> </head> <body> <form id="Form1" runat="server"> <input type="text" id="Message"> <input type="button" value="ClickMe" onclick="DoClick()"> </form> </body> </html>
<%@ Page Language="C#"%> <script runat="server"> public void Page_Load(Object sender, EventArgs e) { // Define the name and type of the client scripts on the page. String csname1 = "PopupScript"; String csname2 = "ButtonClickScript"; Type cstype = this.GetType(); // Get a ClientScriptManager reference from the Page class. ClientScriptManager cs = Page.ClientScript; // Check to see if the startup script is already registered. if (!cs.IsStartupScriptRegistered(cstype, csname1)) { String cstext1 = "alert('Hello World');"; cs.RegisterStartupScript(cstype, csname1, cstext1, true); } // Check to see if the client script is already registered. if (!cs.IsClientScriptBlockRegistered(cstype, csname2)) { StringBuilder cstext2 = new StringBuilder(); cstext2.Append("<script type=text/javascript> function DoClick() {"); cstext2.Append("Form1.Message.value='Text from client script.'} </"); cstext2.Append("script>"); cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), false); } } </script> <html> <head> <title>ClientScriptManager Example</title> </head> <body> <form id="Form1" runat="server"> <input type="text" id="Message"> <input type="button" value="ClickMe" onclick="DoClick()"> </form> </body> </html>
 .NET Framework のセキュリティ
.NET Framework のセキュリティ 継承階層
継承階層System.Web.UI.ClientScriptManager
 スレッド セーフ
スレッド セーフ プラットフォーム
プラットフォームWindows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
 バージョン情報
バージョン情報 参照
参照- ClientScriptManager クラスのページへのリンク

 
                             
                    


