メインコンテンツへジャンプ
ASP.NETのTips満載!

チュートリアル

文責:山田祥寛最終更新日:2005年06月15日

ユーザ・コントロール(「.ascx」ファイル)を利用する

キャラクターイラスト

ユーザ・コントロールは、ASP.NETページ(「.aspx」ファイル)から利用可能なコントロール部品で、拡張子「.ascx」の形式で提供されます。HTMLのようなタグの形式で記述できることから、ASP.NET(というか、プログラム)を一切知らない人間でも簡単に利用できるのが特長です。「.ascx」ファイルは、利用側のASP.NETページ(「.aspx」ファイル)と同一のフォルダに配置してください。

ユーザ・コントロールの利用例

本稿では、ユーザ・コントロールの簡単な利用例を示します。

ユーザ・コントロールは単なる部品ですので、ただサーバに配置しただけでは動作しません。自分でユーザ・コントロールを呼び出すための「.aspx」ファイルを用意する必要があります。

[sample.aspx]
<%@ Register Tagprefix="Wings" TagName="SourceShow"
Src="SourceShow.ascx" %>
<Wings:SourceShow id="source" runat="Server"
FilePath="SourceShow.ascx" FileEncoding="Shift_JIS"
ForeColor="White" BgColor="Black" />
実行結果
実行結果

いかがですか?ちょっと見覚えのないタグが含まれているかもしれませんが、プログラム・コードはいっさい含まれていないことがお分かりになるはずです。ユーザ・コントロールを利用することで、これだけリッチなアプリケーションがプログラムなしに構築できてしまうのです。

それでは、「.aspx」ファイルに含まれている「見覚えのないタグ」について、紹介していくことにしましょう。

ユーザ・コントロールを利用するためのポイント

上記のsample.aspxはとても単純な例ですが、ユーザ・コントロールを利用するための重要なポイントを含んでいます。

  1. @Registerディレクティヴ(命令)で「.ascx」ファイルを読み込む
  2. ユーザ・コントロールを利用するには、<%@ Register ~%>でユーザ・コントロール(「.ascx」ファイル)を読み込む(呼び出す)必要があります。この記述は、ユーザ・コントロールを利用するすべての「.aspx」ファイルで行わなければなりません。

    @Register命令では、タグの属性のような形式で、以下のパラメータを設定することができます。

    @Register命令で指定しなければならないパラメータ
    パラメータ意味
    Tagprefixタグの接頭辞(<x:name>の「x」に当たる部分)。WebDeliが提供するツールでは、共通して「Wings」を指定してください
    TagNameタグ名(<x:name>の「name」に当たる部分)。ツールに依存します。ツール個別の紹介ページを参照してください
    Src「.ascx」ファイルの名前(パス)。提供ツールごとに異なります

    このように書いてしまうと難しく聞こえるかもしれませんが、ここはおまじないのようなものだと思って戴いても構いません。ツールを利用する場合には、ツール個別の紹介ページに記述されている@Register命令をそのままコピーして使用すればOKです。

  3. ユーザ・コントロールはタグの形式で指定できる
  4. [1]の@Register命令は、あくまで「ユーザ・コントロールを現在のASP.NETページ上で利用するための準備」を行っているにすぎません。実際に、ユーザ・コントロールを呼び出しているのは、<Wings:~>で始まるタグ形式の命令です。

    ユーザ・コントロールの一般的な記述は、以下の通りです。XMLの形式に則って、タグは「~/>」で閉じる、属性値はダブルクォーテーションで囲むなどを守ってください。

    <接頭辞:タグ名 id="名前" runat="Server" [オプション...] />

    「接頭辞」と「タグ名」は、[1]の@Register命令で記述したTagprefix、TagName属性に対応している必要があります(繰り返しですが、接頭辞はWebDeli提供ツールでは固定値で「Wings」です)。id属性は、ユーザ・コントロールを一意に識別するための名前です。名前は自由に命名することができますが、同一の「.aspx」ファイル内に同一の名前が複数あってはいけません。runat属性は、このタグがユーザ・コントロールであることを表すためのものです。「runat="Server"」はいかなる場合も固定値であると思っておいてください。

    オプションは、ユーザ・コントロールの見栄えや挙動を制御するためのパラメータです。ツールによって利用可能なオプションは異なりますので、詳細は個別のツール紹介ページを参照してください。必須のオプションは必ず指定しなければなりません。

コンテンツの終わりです。