次の方法で共有


UserControl クラス

ASP.NET Web アプリケーションのホストであるサーバーから要求された .ascx ファイルを表します。このファイルはユーザー コントロールとも呼ばれます。このファイルは Web フォーム ページから呼び出してください。このページから呼び出さないと、解析エラーが発生します。

この型のすべてのメンバの一覧については、UserControl メンバ を参照してください。

System.Object
   System.Web.UI.Control
      System.Web.UI.TemplateControl
         System.Web.UI.UserControl

Public Class UserControl
   Inherits TemplateControl
   Implements IAttributeAccessor, IUserControlDesignerAccessor
[C#]
public class UserControl : TemplateControl, IAttributeAccessor,
   IUserControlDesignerAccessor
[C++]
public __gc class UserControl : public TemplateControl,
   IAttributeAccessor, IUserControlDesignerAccessor
[JScript]
public class UserControl extends TemplateControl implements
   IAttributeAccessor, IUserControlDesignerAccessor

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

UserControl クラスは、.ascx 拡張子を持つファイルと関連付けられています。これらのファイルは、実行時に UserControl オブジェクトとしてコンパイルされ、サーバー メモリにキャッシュされます。

ある .ascx ファイルを他のファイルで宣言し、後者を Web フォーム ページに挿入することにより、ユーザー コントロールを入れ子にできます。

ユーザー コントロールは ASP.NET Web フォーム ページに格納されており、Web 開発者は通常使用する Web UI を簡単に取り込むことができます。ユーザー コントロールは、 Page オブジェクトと似た方法でインスタンス化およびキャッシュされます。ただし、ユーザー コントロールは、ページとは異なり、独立して呼び出すことはできません。ユーザー コントロールは、ページまたはページを格納している他のユーザー コントロールからだけ呼び出すことができます。

分離コード技法を使用してユーザー コントロールを作成する必要がある場合は、このクラスから派生させます。この技法を使用して Web フォーム ページを開発している場合にお勧めします。

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

使用例

[Visual Basic, C#, C++] UserControl クラスを継承し、ASP.NET 分離コード クラスとして使用できるクラス (SimpleControl) の定義例を次に示します。このクラスでは、 TextBoxLabelButton の 3 つの Web サーバー コントロールを使用します。また、 TextBox.Text プロパティの値を他の 2 つの文字列と連結して Label.Text プロパティに設定する myButton_Click メソッドも定義しています。

 
Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls

 _

Public Class SimpleControl
   Inherits UserControl
   Public name As TextBox
   Public output As Label
   Public myButton As Button
   
   
   Public Sub myButton_Click(sender As Object, e As EventArgs)
      output.Text = "Hello, " + name.Text + "."
   End Sub 'myButton_Click 
End Class 'SimpleControl

[C#] 
using System;
using System.Web.UI;
using System.Web.UI.WebControls;

public class SimpleControl:UserControl
{
 public TextBox name;
 public Label output;
 public Button myButton;

 public void myButton_Click(object sender, EventArgs e)
 { 
   output.Text = "Hello, " + name.Text + ".";

 }

 
}

[C++] 
#using <mscorlib.dll>
#using <System.Web.dll>
#using <System.dll>
using namespace System;
using namespace System::Web::UI;
using namespace System::Web::UI::WebControls;

public __gc class SimpleControl:public UserControl
{
public:
   TextBox* name;
   Label* output;
   Button* myButton;

   void myButton_Click(Object* /*sender*/, EventArgs* /*e*/)
   { 
      output->Text = String::Format( S"Hello, {0}.", name->Text );
   }
};

[Visual Basic, C#, C++].ascx ファイルに含まれるマークアップの例を次に示します。前の例の SimpleControl クラスを、この .ascx ファイルのマークアップの分離コード クラスとして使用できます。

 
<%@ control inherits = "SimpleControl" src = "SimpleControl.vb" %>

<table style="background-color: yellow; font: 10pt verdana;border-width:1;border-style:solid;border-color:black;" cellspacing=15>
<tr>
<td><b>Enter your name here: </b></td>
<td><ASP:TextBox id="name" runat="server"/></td>
</tr>
<tr>
<td><b><ASP:Label id="output" runat="server"/></b></td>
</tr>
<tr>
<td></td>
<td><asp:button text="Submit" OnClick="myButton_Click" runat="server" /></td>
</tr>
</table>


[C#] 
<%@ control inherits = "SimpleControl" src = "SimpleControl.cs" %>

<table style="background-color:yellow;font: 10pt verdana;border-width:1;border-style:solid;border-color:black;" cellspacing=15>
<tr>
<td><b>Enter your name here: </b></td>
<td><ASP:TextBox id="name" runat="server"/></td>
</tr>
<tr>
<td><b><ASP:Label id="output" runat="server"/></b></td>
</tr>
<tr>
<td></td>
<td><asp:button id="myButton" text="Submit" OnClick="myButton_Click" runat="server" /></td>
</tr>
</table>

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Web.UI

プラットフォーム: Windows 2000, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System.Web (System.Web.dll 内)

参照

UserControl メンバ | System.Web.UI 名前空間 | TemplateControl | IAttributeAccessor | Page | Web フォーム ユーザー コントロール