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の大きなメリットがあります。
|
|
|