ASP.NET サーバーコントロールの概要

この記事では、HTML サーバーコントロール、Web サーバーコントロール、リストコントロールなどの ASP.NET サーバーコントロールについて説明します。

元の製品バージョン:  ASP.NET
元の KB 番号:  306459

この記事では、次の Microsoft .NET Framework クラスライブラリの名前空間を参照してください。

  • System.Web.UI.HtmlControls.HtmlControl
  • System.Web.UI.WebControls.WebControl

ASP.NET page framework のサーバーコントロール

ASP.NET page フレームワークには、Web のより構造化されたプログラミングモデルを提供するように設計された、多数の組み込みサーバーコントロールが含まれています。 これらのコントロールは、次の機能を提供します。

  • 自動状態管理。
  • オブジェクトを使用しなくても、オブジェクトの値に簡単にアクセス Request できます。
  • より効果的に構造化されたアプリケーションを作成するために、サーバー側コードでイベントに反応する機能。
  • Web ページのユーザーインターフェイスを構築するための一般的な方法です。
  • 出力は、ブラウザーの機能に基づいて自動的にカスタマイズされます。

ASP.NET page framework では、組み込みのコントロールに加えて、ユーザーコントロールやカスタムコントロールを作成することもできます。 ユーザーコントロールとカスタムコントロールを使用すると、既存のコントロールを拡張および拡張して、より豊富なユーザーインターフェイスを構築できます。

HTML サーバーコントロール

HTML サーバーコントロールは、属性を含む HTML 要素です runat=server 。 HTML サーバーコントロールは、html 出力と、それに対応する HTML タグと同じプロパティを持ちます。 また、HTML サーバーコントロールは、自動状態管理とサーバー側イベントを提供します。 HTML サーバーコントロールには、次のような利点があります。

  • HTML サーバーコントロールは、対応する HTML タグを使用して、1つをマップします。
  • ASP.NET アプリケーションがコンパイルされると、属性を持つ HTML サーバーコントロール runat=server がアセンブリにコンパイルされます。
  • ほとんどのコントロールには、 OnServerEvent コントロールに最もよく使用されるイベント用のが含まれています。 たとえば、コントロールに <input type=button> はイベントがあり OnServerClick ます。
  • 特定の HTML サーバーコントロールとして実装されていない HTML タグは、サーバー側でも使用できます。ただし、はとしてアセンブリに追加され HtmlGenericControl ます。
  • ASP.NET ページが reposted の場合、HTML サーバーコントロールはその値を保持します。

System.Web.UI.HtmlControls.HtmlControl基本クラスには、すべての共通プロパティが含まれています。 HTML サーバーコントロールは、このクラスから派生します。

HTML サーバーコントロールを使用するには、次の構文を使用し HtmlInputText ます (例としてコントロールを使用)。

<input type="text" value="hello world" runat=server />

ASP.NET で使用できる個々の HTML サーバーコントロールの詳細については、次の Web サイトを参照してください。

Web サーバーコントロール

Web コントロールは、ボタン、テキストボックス、ハイパーリンクなどの HTML サーバーコントロールに似ていますが、Web コントロールは、標準化された一連のプロパティ名を持っている点が異なります。 Web サーバーコントロールには、次のような利点があります。

  • 製造元と開発者が、ユーザーインターフェイスを自動的に生成するツールやアプリケーションを簡単に作成できるようにします。
  • 対話型 Web フォームの作成プロセスを簡素化します。これにより、HTML コントロールの動作についての知識が不足し、それらを使用してエラーを起こしにくくすることができます。

System.Web.UI.WebControls.WebControl基本クラスには、すべての共通プロパティが含まれています。 ほとんどの Web サーバーコントロールは、このクラスから派生します。

Web サーバーコントロールを使用するには、次の構文を使用します (たとえば、TextBox コントロールを使用します)。

<asp:textbox text="hello world" runat=server />

Web サーバーコントロールは、次の4つのカテゴリに分類できます。

  • 基本的な Web コントロール
  • 検証コントロール
  • リストコントロール
  • リッチコントロール

基本的な web コントロール

基本的な Web コントロールは、対応する HTML サーバーコントロールと同じ機能を提供します。 ただし、基本的な Web コントロールには、プログラミングできる追加のメソッド、イベント、およびプロパティが含まれています。

ASP.NET で使用できる個々の Web コントロールの詳細については、次の Web サイトを参照してください。

検証コントロール

検証コントロールは、ページの他のコントロールに入力された値を検証するために使用されます。 検証コントロールは、ページが表示されるブラウザーの機能に応じて、クライアント側の検証、サーバー側の検証、またはその両方を実行します。 検証コントロールには、次のような利点があります。

  • 検証するコントロールには、1つまたは複数の検証コントロールを関連付けることができます。
  • 検証は、ページフォームが送信されるときに実行されます。
  • 検証を行うかどうかをプログラムで指定できます。これは、ユーザーがすべてのフィールドに有効なデータを入力せずに終了できるように、[キャンセル] ボタンを提供する場合に便利です。
  • 検証コントロールは、クライアント側またはサーバー側で検証を実行する必要があるかどうかを自動的に検出します。

注意

ポストバック操作が完了する前に、クライアント側の検証でエラーが検出されます。 そのため、1つのページにクライアント側とサーバー側の検証コントロールの組み合わせがある場合、クライアント側の検証が失敗した場合、サーバー側の検証は横取りされます。ASP.NET で使用できる個々の検証コントロールの詳細については、次の Web サイトを参照してください。

コントロールを一覧表示する

リストコントロールは、コレクションへのバインドをサポートする特別な Web サーバーコントロールです。 リストコントロールを使用すると、データ行をカスタマイズされたテンプレートの形式で表示できます。 すべてのリストコントロールは、DataSource および DataMember プロパティを公開します。このプロパティは、コレクションにバインドするために使用されます。

リストコントロールは、IEnumerable、ICollection、または IListSource インターフェイスをサポートするコレクションにのみバインドできます。 たとえば、Visual C# .NET のサンプルページは次のように表示されます。

<%@ Page Language="C#" %>
<script runat="server">
    Public void Page_Load()
    {
        String[] myStringArray = new String[] {"one","two","three"};
        rptr.DataSource = myStringArray;
        rptr.DataBind();
    }
</script>
<html>
    <body>
        <asp:repeater id=rptr runat="server">
            <itemtemplate><%# Container.DataItem %><br></itemtemplate>
        </asp:repeater>
    </body>
</html>

Visual Basic .NET のサンプルページは次のように表示されます。

<%@ Page Language="vb" %>
<script runat="server">
    public sub Page_Load()
        Dim myStringArray as String()
        myStringArray = new String() {"one","two","three"}
        rptr.DataSource = myStringArray
        rptr.DataBind()
    end sub
</script>
<html>
    <body>
        <asp:repeater id=rptr runat="server">
            <itemtemplate><%# Container.DataItem %><br></itemtemplate>
        </asp:repeater>
    </body>
</html>

出力は次のように表示されます。

  • two
  • three

ASP.NET で使用できる個々のリストコントロールの詳細については、次の Web サイトを参照してください。

リッチコントロール

前述のコントロールに加えて、ASP.NET page framework には、リッチコントロールと呼ばれる、いくつかのタスク固有のコントロールが用意されています。 リッチコントロールは複数の HTML 要素で構成されており、豊富な機能を備えています。 リッチコントロールの例としては、カレンダーコントロールと AdRotator コントロールがあります。

ASP.NET で使用できる個々のリッチコントロールの詳細については、次の Web サイトを参照してください。

ユーザー コントロール

多くの場合、追加のコードを記述せずに、Web フォームのユーザーインターフェイスを再利用することができます。 ASP.NET では、Web フォームをユーザーコントロールに変換することによって、これを行うことができます。 ユーザーコントロール (.ascx ファイル拡張子を持つ) は、1つの Web フォーム内で複数回使用できます。

Web フォームをユーザーコントロールに変換するには、次の手順を実行します。

  1. 、、 <html> <head> <body> 、およびタグをすべて削除 <form> します。
  2. ディレクティブが @ Page ページに表示されている場合は、に変更し @ Control ます。
  3. className @ Control ユーザーコントロールをインスタンス化するときに厳密に型指定されるように、ディレクティブに属性を含めます。
  4. コントロールにわかりやすいファイル名を指定し、ファイル拡張子を .aspx から .ascx に変更します。

ユーザーコントロールの詳細については、「 Web フォームユーザーコントロール」を参照してください。

カスタム コントロール

ASP.NET では、組み込みの Web コントロールに加えて、独自のカスタムコントロールを作成することもできます。 以下のシナリオのいずれかに該当する場合は、カスタムコントロールを開発することが役に立つ場合があります。

  • 2つ以上の組み込み Web コントロールの機能を組み合わせる必要があります。
  • 組み込みのコントロールの機能を拡張する必要があります。
  • 現在存在しているコントロールとは異なるコントロールが必要です。

カスタムコントロールの開発の詳細については、以下のトピックを参照してください。