.NETエンタープライズWebアプリケーション
開発技術大全

ASP.NETランタイムの基本動作とWeb UIコントロールツリー

マイクロソフト コンサルティング本部 赤間 信幸
2004/05/08
Page1 Page2 Page3 Page4

3 ASP.NET処理ブロックの中からのWeb UIコントロールツリーの操作方法

3.1 WebコントロールへのID値の付与方法

 ASP.NET処理ブロック内のイベントハンドラからWeb UIコントロールツリーを操作するためには、操作したいWebコントロールあるいはHTMLコントロールに、予めインスタンス名(変数名)を付与しておく必要がある。その方法は極めて単純で、WebコントロールやHTMLコントロールとなるタグにrunat="server"属性に加えてid属性を指定しておけばよい※6

※6 ID属性を指定していなかった場合にはASP.NETランタイムが自動的に適当なインスタンス名を付与する。

 例えばリスト4のコードからは、図15のようなインスタンス名を持つWeb UIコントロールツリーが構築される。

<%@ Page Language="C#" %>
<HTML><BODY>
  <FORM runat="server" id="MyForm">
    <asp:Calendar runat="server" id="MyCalendar" />
    <asp:Button runat="server" id="MyButton" text="OK" />
    <INPUT runat="server" id="MyPassword" />
  </FORM>
</BODY></HTML>
リスト4 Web UIコントロールツリーを操作するサンプルコード
 
図15 リスト4で構築されるWeb UIコントールツリー

3.2 変換先となるクラスライブラリ

 WebコントロールおよびHTMLコントロールは、先に述べた通り、それぞれSystem.Web.UI.WebControlsならびにSystem.Web.UI.HtmlControls名前空間下にあるクラスのインスタンスに変換される。このため、変換先となっているクラスライブラリの仕様書を確認すれば、どのようなプロパティやメソッドを持つか(どのような操作が可能なのか)が分かる※7(リスト5)。

※7 MSDNドキュメント(製品ドキュメント)の以下の項を参照。[microsoft .NET Fremework SDK v1.1]−[ドキュメント]−[.NET Framework SDK]−[リファレンス]−[クラスライブラリ]−[System.Web.UI.WebControls]または[System.Web.UI.HtmlControls](図16)。

図16 MSDNドキュメント内のWebコントロールについてのリファレンス
 
C#の場合

<%@ Page Language="C#" %>

<SCRIPT runat="server">
  protected void Page_Load(object o, EventArgs sender) {
    MyCalendar.TodaysDate = new DateTime(2003, 11, 1);
    MyButton.Text = "送信";
  }
</SCRIPT>

<HTML><BODY>
  <FORM runat="server" id="MyForm">
    <asp:Calendar runat="server" id="MyCalendar" />
    <asp:Button runat="server" id="MyButton" text="OK" />
    <INPUT runat="server" id="MyPassword" />
  </FORM>
</BODY></HTML>

VB.NETの場合

<%@ Page Language="VB" %>

<SCRIPT runat="server">
  Protected Sub Page_Load(ByVal source As Object, ByVal e As EventArgs)
    MyCalendar.TodaysDate = New DateTime(2003, 11, 1)
    MyButton.Text = "送信"
  End Sub
</SCRIPT>

<HTML><BODY>
  <FORM runat="server" id="MyForm">
    <asp:Calendar runat="server" id="MyCalendar" />
    <asp:Button runat="server" id="MyButton" text="OK" />
    <INPUT runat="server" id="MyPassword" />
  </FORM>
</BODY></HTML>
リスト5 C#とVB.NETのサンプルコード

 なお実際の開発ではVisual Studio .NETを利用するため、各Webコントロールが持つメソッドやプロパティの一覧およびその概要はIntelliSense機能により開発環境の中から確認できる。このため毎回MSDNドキュメントを調べる必要はないが、ここでは以下のポイントのみ押さえておいていただきたい。

  • ASP.NET処理ブロックの中から操作したいWebコントロールやHTMLコントロールに関しては、ID値を付与しておく。

  • WebコントロールやHTMLコントロールの操作方法の詳細は、当該コントロールのクラスライブラリリファレンスを参照すれば調べることができる。

4 ASP.NETランタイムの基本動作とWeb UI コントロールツリーのまとめ

 最後に、この節でのポイントを整理して締めくくることとする。

・.aspxファイルは以下の3つの部分から構成されている。
  ・ページディレクティブ
    ・利用する言語などを指定する宣言部分
  ・ASP.NET処理ブロック
    ・Web UIコントロールツリーを操作するためのプログラムコードを記述する部分
  ・HTMLデザインブロック
    ・Web UIコントロールツリーを構築するためのプログラムコードを記述する部分
 
・ASP.NETランタイムは、.aspxファイルからWeb UIコントロールツリーを経由して、送出するHTMLコードを生成する。
  ・HTMLデザインブロックに基づき、WebコントロールとHTMLコントロールを利用してWeb UIコントロールツリーを生成する。
 

・ASP.NET処理ブロック内のイベントハンドラによる一連の処理を終えたあと、Web UIコントロールツリーからレスポンスとなるHTMLコードが出力される。End of Article

 
.NETエンタープライズWebアプリケーション開発技術大全
Vol.2 ASP.NET 基礎編
定価 3,675円(税込み)

赤間 信幸(マイクロソフト株式会社コンサルティング本部) 著
B5変型判/340p
ISBN 4-89100-428-2
日経BPソフトプレス発行


日経BPソフトプレスの書籍紹介ページへ
マイクロソフトプレスの書籍紹介ページへ
 
 

 INDEX
  .NETエンタープライズWebアプリケーション開発技術大全
  ASP.NETランタイムの基本動作とWeb UIコントロールツリー
    1.ASP.NETランタイムの基本動作
    2.ASP.NETのランタイム動作
    3.Web UIコントロールツリーの作成方法
  4.ASP.NET処理ブロックの中からのWeb UIコントロールツリーの操作方法
 
インデックス・ページヘ  「.NETエンタープライズWebアプリケーション開発技術大全」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間