[#d37ae965]前回、前々回とASP.NETでAjaxを使ったWebアプリケーションを作成する方法を紹介してきました。前回はICallbackEventHandlerインターフェイスを実装する方法を紹介し、多少楽をすることができました。それでもJavaScriptのコードを自分で書く必要があり、JavaScriptの知識を必要とします。AJAXを使用すれば、極端に言えば、自分でJavaScriptのコードを一行も書くことなく、Ajaxを使用したページを作成することができます。自分でJavaScriptのコードを書く必要があるケースでも、大幅に簡略化できます。AJAXのバージョンは、1.0です。2.0以上が必要です。AJAXをダウンロードします。MSIファイルとして提供されています。以下のページからダウンロードできます。Extensions」をダウンロードしてください。Extensions」をインストールした後にしてください。ダウンロードしたMSIファイルを使ってインストールします。インストールするには、管理者権限が必要です。AJAXがインストールされている場合は、これをアンインストールしてから新しいバージョンをインストールしてください。AJAX用のプロジェクトのテンプレートがインストールされます。Site」というテンプレートが見つかるでしょう。Extensions」というタブが追加され、幾つかのコンポーネントが登録されます。Extensions」タブにあるコンポーネントをページに配置したりすると、Web.configに必要な設定が書き込まれます。Edition)をインストールしていない場合は、Web.configの設定を自分で書き込む必要があります。AJAXをインストールしたフォルダにあります。Extensions\v1.0.61025\web.config」のようなパスにあります。ここでもゆうパックの料金を調べるWebアプリケーションを作成します。前々回からお読みいただいている方は、あまりに簡単で、本当にたったこれだけでいいのかと驚かれるのではないでしょうか。</form></body></html>}}前々回紹介した、Ajaxを使用せずに、今までどおりポストバックを使用する方法と、ほとんど同じです。コードは全く同じで、違いは、荷物のサイズを選択するDropDownListコントロールと、結果を表示するLabelコントロールがUpdatePanelコントロールの中(<ContentTemplate>の中)に入っていることだけです。自分でJavaScriptを書く必要も、Webサービスを作成する必要もありません。UpdatePanelコントロールを使うためには、ScriptManagerコントロールが必要です。UpdatePanelコントロールを使いたいページにScriptManagerコントロールが無ければ、まずScriptManagerコントロールを追加してから、UpdatePanelコントロールを追加します。Extensions」内にあります。ScriptManagerコントロールは、1つのページに1つだけ配置できます。[#j39e4fc2]今まで紹介してきたAjaxのサンプルでは、ゆうパックの料金を調べている最中に、「読み込み中...」と表示されていましたが、上記の例では、表示されません。このような現在の状況を表示するには、UpdateProgressコントロールを使います。上記のサンプルに現在の状況を表示するには、まずページにUpdateProgressコントロールを追加し、その中(<ProgressTemplate>の中)に「読み込み中...」と記入します。このUpdateProgressコントロールのAssociatedUpdatePanelIDプロパティを"UpdatePanel1"とし、表示する状況のUpdatePanelと関連付けます。上記のサンプルにUpdateProgressコントロールを追加して、「読み込み中...」と表示されるようにしたコードは、以下のようになります。ここでは、DisplayAfterプロパティを0にして、すぐに「読み込み中...」が表示されるようにしています。AJAXを使うと、まるでWebサービスのメソッドをJavaScriptから直接呼び出すかのように、Webサービスにアクセスすることができます。ここでは、前々号で紹介したアプリケーションと同じものをこの機能を使って実現してみます。WebサービスのクラスにScriptServiceAttribute属性を適用します。HTTPハンドラを登録する必要があります。</httpHandlers><system.web>}}次に、Webサービスを呼び出すJavaScriptを作成します。次に、Webサービスを呼び出すページを作成します。コントロールの配置は、今までと同じままとし、ScriptManagerコントロールを一つ配置します。