Webアプリ開発事始 第17回

ASP.NET入門
~Visual Studio .NETでWebアプリケーションを作る
長谷川裕行
有限会社 手國堂

コントロールとイベント処理

ASP.NETでは、クライアントのブラウザに表示されたコントロールに対して、イベント処理をコーディングしてアプリケーションを組み上げていきます。


- 2種類のコントロール -

上の例のように、ASP.NETのWebフォームでは一般的なHTMLタグによるフォームとは別に、サーバー側で制御されるサーバーコントロールが使えます。サーバーコントロールはサーバー側でインスタンスが生成され、クライアントへは通常のHTMLタグとして送信されます。

クライアントのブラウザでユーザーがコントロールを操作すると、そのイベントに関連付けられたイベントハンドラがサーバー上で実行され、結果がクライアントに返されます。

サーバーコントロールには、以下の2種類があります。

HTMLサーバーコントロール

通常のHTMLタグで記述された要素を、サーバーで制御できるよう変換したものです。
HTML要素をVBScriptやJScriptなどのスクリプトで制御する場合には、サーバーコントロールとする必要はありません。サーバーから制御したいときだけ変換します。

Webサーバーコントロール

ツールボックスの「Webフォーム」で選択できる、ASP.NETのWebフォーム独自のコントロール群です。HTMLサーバーコントロールより多種・多機能で細やかな制御ができます。但し、クライアントサイドのスクリプトから制御することはできません。



- .NET Frameworkがコードを処理する -

WebサーバーコントロールをWebフォームに貼り付けると、.aspxファイルには<asp: ...>~</asp: ...>という形式のタグが生成されます。例えばButton(ボタン)を貼り付けると、HTMLには

  <asp:Button id="Button1" runat="server"></asp:Button>

のような1行が生成されます。<asp>はHTMLには規定されていないため、直接このコードがクライアントに送信されても、画面には何も表示されません。

ASP.NETでは、IISがクライアントから.aspxファイルに対する要求を受け取ると .NET Frameworkがコードを処理し、最終的にHTMLデータを生成してIIS経由でクライアントに送信します。上の例の場合なら、<input type="submit" method="post"...>という形式のボタン要素となります。



- イベント処理の構造は共通 -

こうしてブラウザに表示された要素に対してユーザーが何らかの操作を行うと、サーバー側でイベント処理が行われます。

Button1という名前(nameプロパティ)のクリック(Click)イベントに対応するハンドラは、以下のような形となります。

Visual Basicの場合

Private Sub Button1_Click _
  (ByVal sender as System.Object, _
   ByVal e as System.EventArgs) Handles Button1.Click
  ... コードを記述 ...
End Sub

C#の場合

private void Button1_Click(object sender, System.EventArgs e)
{
  ... コードを記述 ...
}

このように、言語によって文法的な違いはあるものの、基本的な構造はまったく変わりません。



あとがき

WebフォームによるASP.NETのWebアプリケーション開発は、Visual Basicでフォームをデザインし、イベント処理を記述する要領と変わりません。言語やアプリケーションの種類に関係なく、常に同じインターフェイスを使ってプログラミングできるところに、 .NETの大きなメリットがあります。


トップページ
ASP.NETとVisual Studio .NET
ASP.NETによるWebアプリケーションの開発
コントロールとイベント処理
2種類のコントロール
.NET Frameworkがコードを処理する
イベント処理の構造は共通
あとがき

Copyright © MESCIUS inc. All rights reserved.