ScriptManager コントロールの概要

更新 : 2007 年 11 月

ScriptManager コントロールは、AJAX 対応の ASP.NET Web ページのクライアント スクリプトを管理します。既定では、ScriptManager コントロールは Microsoft AJAX Library のスクリプトをページに登録します。これにより、クライアント スクリプトは、型システム拡張機能を使用して部分ページ レンダリングや Web サービス呼び出しなどの機能をサポートできます。

このトピックは、次のセクションで構成されています。

  • シナリオ

  • 背景

  • コード例

  • クラス リファレンス

シナリオ

ASP.NET の次のような AJAX 機能を有効にするときに、ScriptManager コントロールをページで使用する必要があります。

  • Microsoft AJAX Library のクライアント スクリプト機能と、ブラウザに送信するすべてのカスタム スクリプト。詳細については、「Microsoft AJAX Library を使用したカスタム クライアント スクリプトの作成」を参照してください。

  • ポストバックを実行せずにページ上の領域を個別に更新できる、部分ページ レンダリング。部分ページ レンダリングをサポートするには、ASP.NET の UpdatePanelUpdateProgress、および Timer の各コントロールに ScriptManager コントロールが必要です。

  • Web サービスの JavaScript プロキシ クラス。これを使用すると、クライアント スクリプトを使用して Web サービスや ASP.NET ページ内の特別にマークされたメソッドにアクセスできます。そのためには、Web サービスとページのメソッドを厳密に型指定されたオブジェクトとして公開します。

  • ASP.NET の認証、プロファイル、およびロール アプリケーションの各サービスにアクセスする JavaScript クラス。

背景

ScriptManager コントロールは、ページに 1 つ以上の UpdatePanel コントロールが含まれている場合に、ブラウザでの部分ページ レンダリングを管理します。このコントロールは、ページのライフ サイクルとやり取りして、ページの UpdatePanel コントロール内部にある部分を更新します。詳細については、「部分ページ レンダリングの概要」を参照してください。

ページが部分ページ更新に参加するかどうかは、ScriptManager コントロールの EnablePartialRendering プロパティによって決まります。既定では、EnablePartialRendering プロパティは true です。したがって、既定では、ページに ScriptManager コントロールを追加すると、部分ページ レンダリングが有効になります。UpdatePanel コントロールと ScriptManager コントロールを組み合わせて使用する方法については、「UpdatePanel コントロールの概要」および「複数の UpdatePanel コントロールを使用した単純な ASP.NET ページの作成」を参照してください。

部分ページ レンダリングのエラー処理

部分ページ レンダリング中にエラーを処理するには、次の操作を行います。

  • AllowCustomErrorsRedirect プロパティを設定します。これは、非同期ポストバック中にエラーが発生したときに Web.config ファイルのカスタム エラー セクションを使用する方法を指定します。

  • 非同期ポストバック中にページ エラーが発生したときに発生する、ScriptManager コントロールの AsyncPostBackError イベントを処理します。

  • ブラウザに送信されるエラー メッセージである AsyncPostBackErrorMessage プロパティを設定します。

型システム拡張機能の使用

Microsoft AJAX Library は、文字列と配列に対して名前空間、継承、インターフェイス、列挙型、リフレクション、およびヘルパー関数を提供する型システム拡張機能を JavaScript に追加します。これらの拡張機能は、クライアント スクリプトで .NET Framework の機能に似た機能を提供します。これにより、保守性に優れ、機能の追加やレイヤ化を簡単に実行できる構造的な方法で、AJAX 対応の ASP.NET アプリケーションを作成できます。ScriptManager コントロールを ASP.NET Web ページに追加すると、型システム拡張機能が自動的に追加され、クライアント スクリプトでライブラリを使用できるようになります。詳細については、「Microsoft AJAX Library を使用したカスタム クライアント スクリプトの作成」を参照してください。

カスタム スクリプトの登録

ScriptManager コントロールは、部分ページ更新に参加するコントロール用に作成したリソースを管理するために使用します。リソースには、スクリプト、スタイル、隠しフィールド、および配列が含まれます。ScriptManager コントロールの Scripts コレクションには、ブラウザで使用できる各スクリプトの ScriptReference オブジェクトが含まれます。スクリプトは、宣言によって定義することも、プログラムによって定義することもできます。

ScriptManager コントロールは、プログラムによってクライアント スクリプトと隠しフィールドを管理するために使用できる登録メソッドも公開します。部分ページ更新をサポートするスクリプトや隠しフィールドを登録するときは、ScriptManager コントロールの登録メソッドを呼び出す必要があります (部分ページ更新に必要でないスクリプトを登録する場合は、ClientScriptManager クラスのメソッドを使用します)。

Bb398863.alert_note(ja-jp,VS.90).gifメモ :

ScriptManager コントロールを使用して登録されたページ上のすべてのスクリプトと、すべてのイベント処理スクリプトは、ページの form 要素の中に含める必要があります。それ以外の場合、スクリプトは登録されず、実行もされません。

ClientScriptManager コントロールの登録メソッドの一覧については、「Microsoft AJAX Library を使用したカスタム クライアント スクリプトの作成」および ClientScriptManager クラスの概要を参照してください。

Web サービスの登録

AJAX 対応 ASP.NET ページから呼び出す Web サービスを登録するには、Web サービスを ScriptManager コントロールの Services コレクションに追加して登録します。ASP.NET AJAX フレームワークは、Services コレクション内の各 ServiceReference オブジェクトに対してクライアント プロキシ オブジェクトを生成します。プロキシ クラスと、その厳密に型指定されたメンバにより、クライアント スクリプトからの Web サービスの使用が簡単になります。

ServiceReference オブジェクトを Services コレクションにプログラムで追加することにより、実行時に Web サービスを登録することもできます。詳細については、「ASP.NET AJAX での Web サービス」を参照してください。

クライアント スクリプトからの認証、プロファイル、およびロール サービスの使用

Microsoft AJAX Library には、ASP.NET 2.0 のフォーム認証、プロファイル、およびロール アプリケーションの各サービスを JavaScript から直接呼び出すためのプロキシ クラスが含まれています。カスタム認証サービスを使用する場合は、ScriptManager コントロールを使用してサービスを登録できます。詳細については、「ASP.NET AJAX でのフォーム認証の使用」、「ASP.NET AJAX でのプロファイル情報の使用」、および「ASP.NET AJAX でのロール情報の使用」を参照してください。

ScriptManagerProxy クラス

ページに追加できる ScriptManager コントロールのインスタンスは 1 つだけです。コントロールはページに直接含めることも、入れ子になったコンポーネント (ユーザー コントロール、マスタ ページのコンテンツ ページ、入れ子になったマスタ ページなど) の内部に間接的に含めることもできます。ページに既に ScriptManager コントロールが含まれているが、入れ子になったコンポーネントや親コンポーネントで ScriptManager コントロールの追加機能が必要な場合は、コンポーネントに ScriptManagerProxy コントロールを含めることができます。たとえば、ScriptManagerProxy コントロールを使用して、入れ子になったコンポーネントに固有のスクリプトおよびサービスを追加できます。

コード例

サンプルの AJAX アプリケーション

チュートリアル : AJAX 対応の Web サイトの作成

チュートリアル : クライアント スクリプトを使用した日付のグローバライズ

Microsoft AJAX Library を使用したカスタム クライアント スクリプトの作成

チュートリアル : AJAX 対応の Web サービスの作成と使用

UpdatePanel コントロールの概要

UpdateProgress コントロールの概要

チュートリアル : Timer コントロールの概要

スクリプト参照の動的な割り当て

クライアント動作と Web サーバー コントロールとを関連付けるエクステンダ コントロールの作成

Web サーバー コントロールへのクライアント機能の追加

カスタム AJAX クライアント コントロールの作成

カスタムの非ビジュアル クライアント コンポーネントの作成

クラス リファレンス

クラス

説明

ScriptManager

Microsoft AJAX Library および部分ページ レンダリングを有効にする機能を含む、ブラウザでスクリプト リソースを利用できるようにするサーバー コントロール。

ScriptManagerProxy

ページに既に ScriptManager コントロールが含まれる場合に、入れ子になったコンポーネントがスクリプト参照およびサービス参照を追加できるようにするサーバー コントロール。

参照

概念

ASP.NET ページのライフ サイクルの概要

部分ページ レンダリングの概要

ASP.NET AJAX での Web サービス