TemplateContainerAttribute クラス
アセンブリ: System.Web (system.web.dll 内)

<AttributeUsageAttribute(AttributeTargets.Property)> _ Public NotInheritable Class TemplateContainerAttribute Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Property)] public sealed class TemplateContainerAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Property)] public ref class TemplateContainerAttribute sealed : public Attribute

パーサーは、TemplateContainerAttribute オブジェクトのパラメータとして渡される Type オブジェクトを、データ バインディング式で使用される Container オブジェクトの型として使用します。ITemplate インターフェイスを返し、TemplateContainerAttribute でマークされるプロパティを持つコントロールは、INamingContainer インターフェイスを実装する必要があります。
属性の使用方法については、「属性を使用したメタデータの拡張」を参照してください。

TemplatedFirstControl という名前の template 宣言されたコントロールを作成し、このコントロールを FirstTemplateContainer という名前のコンテナと関連付ける方法を次のコード例に示します。このコード例では、テンプレートが指定されない場合はサーバー時間を表示し、テンプレートが指定される場合はテンプレートの内容を表示するカスタム コントロールが作成されます。
' File name:templatecontainerattribute.vb. Imports System Imports System.Web Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.Collections Namespace Samples.AspNet.VB.Controls <ParseChildren(True)> _ Public Class VB_TemplatedFirstControl Inherits Control Implements INamingContainer Private _firstTemplate As ITemplate Private [_text] As [String] = Nothing Private _myTemplateContainer As Control <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _ Protected Overrides Sub OnDataBinding(ByVal e As EventArgs) EnsureChildControls() MyBase.OnDataBinding(e) End Sub Public Property FirstTemplate() As ITemplate Get Return _firstTemplate End Get Set(ByVal value As ITemplate) _firstTemplate = Value End Set End Property Public Property [Text]() As [String] Get Return [_text] End Get Set(ByVal value As [String]) [_text] = Value End Set End Property Public ReadOnly Property DateTime() As [String] Get Return System.DateTime.Now.ToLongTimeString() End Get End Property Public ReadOnly Property MyTemplateContainer() As Control Get Return _myTemplateContainer End Get End Property <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _ Protected Overrides Sub CreateChildControls() If Not (FirstTemplate Is Nothing) Then _myTemplateContainer = New VB_FirstTemplateContainer(Me) FirstTemplate.InstantiateIn(_myTemplateContainer) Controls.Add(_myTemplateContainer) Else Controls.Add(New LiteralControl([Text] + " " + DateTime)) End If End Sub 'CreateChildControls End Class 'VB_TemplatedFirstControl Public Class VB_FirstTemplateContainer Inherits Control Implements INamingContainer Private _parent As VB_TemplatedFirstControl Public Sub New(ByVal parent As VB_TemplatedFirstControl) Me._parent = parent End Sub 'New Public ReadOnly Property [Text]() As [String] Get Return _parent.Text End Get End Property Public ReadOnly Property DateTime() As [String] Get Return _parent.DateTime End Get End Property End Class 'VB_FirstTemplateContainer End Namespace 'CustomControls
using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Collections; namespace Samples.AspNet.CS.Controls { [ParseChildren(true)] public class TemplatedFirstControl : Control, INamingContainer { private ITemplate firstTemplate; private String text = null; private Control myTemplateContainer; [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")] protected override void OnDataBinding(EventArgs e) { EnsureChildControls(); base.OnDataBinding(e); } [TemplateContainer(typeof(FirstTemplateContainer))] public ITemplate FirstTemplate { get { return firstTemplate; } set { firstTemplate = value; } } public String Text { get { return text; } set { text = value; } } public String DateTime { get { return System.DateTime.Now.ToLongTimeString(); } } public Control MyTemplateContainer { get { return myTemplateContainer; } } [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")] protected override void CreateChildControls() { if (FirstTemplate != null) { myTemplateContainer = new FirstTemplateContainer(this); FirstTemplate.InstantiateIn(myTemplateContainer); Controls.Add(myTemplateContainer); } else { Controls.Add(new LiteralControl(Text + " " + DateTime)); } } } public class FirstTemplateContainer : Control, INamingContainer { private TemplatedFirstControl parent; public FirstTemplateContainer(TemplatedFirstControl parent) { this.parent = parent; } public String Text { get { return parent.Text; } } public String DateTime { get { return parent.DateTime; } } } }
package Samples.AspNet.CS.Controls; /* File name:templatecontainerattribute.jsl. */ import System.*; import System.Web.*; import System.Web.UI.*; import System.Web.UI.WebControls.*; import System.Collections.*; /** @attribute ParseChildren(true) */ public class TemplatedFirstControl extends Control implements INamingContainer { private ITemplate firstTemplate; private String text = null; private Control myTemplateContainer; protected void OnDataBinding(EventArgs e) { EnsureChildControls(); super.OnDataBinding(e); } //OnDataBinding /** @attribute TemplateContainer(FirstTemplateContainer.class) */ /** @property */ public ITemplate get_FirstTemplate() { return firstTemplate; } //get_FirstTemplate /** @property */ public void set_FirstTemplate(ITemplate value) { firstTemplate = value; } //set_FirstTemplate /** @property */ public String get_Text() { return text; } //get_Text /** @property */ public void set_Text(String value) { text = value; } //set_Text /** @property */ public String get_DateTime() { return System.DateTime.get_Now().ToLongTimeString(); } //get_DateTime /** @property */ public Control get_MyTemplateContainer() { return myTemplateContainer; } //get_MyTemplateContainer protected void CreateChildControls() { if (get_FirstTemplate() != null) { myTemplateContainer = new FirstTemplateContainer(this); get_FirstTemplate().InstantiateIn(myTemplateContainer); get_Controls().Add(myTemplateContainer); } else { get_Controls().Add(new LiteralControl(get_Text() + " " + DateTime.class)); } } //CreateChildControls } //TemplatedFirstControl public class FirstTemplateContainer extends Control implements INamingContainer { private TemplatedFirstControl parent; public FirstTemplateContainer(TemplatedFirstControl parent) { this.parent = parent; } //FirstTemplateContainer /** @property */ public String get_Text() { return parent.get_Text(); } //get_Text /** @property */ public String get_DateTime() { return parent.get_DateTime(); } //get_DateTime } //FirstTemplateContainer
次の Web フォームでは、前述のコード例で作成されたカスタム コントロールの使用方法を示しています。TemplatedFirstControl の 2 つのインスタンスがページ上に配置されます。
<%@ Page Language="VB" %> <%@ Import Namespace="System.Reflection" %> <%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB.Controls" Assembly="Samples.AspNet.VB.Controls" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) ' Get the class type for which to access metadata. Dim clsType As Type = GetType(VB_TemplatedFirstControl) ' Get the PropertyInfo object for FirstTemplate. Dim pInfo As PropertyInfo = clsType.GetProperty("FirstTemplate") ' See if the TemplateContainer attribute is defined for this property. Dim isDef As Boolean = Attribute.IsDefined(pInfo, GetType(TemplateContainerAttribute)) ' Display the result if the attribute exists. If isDef Then Dim tca As TemplateContainerAttribute = CType(Attribute.GetCustomAttribute(pInfo, GetType(TemplateContainerAttribute)), TemplateContainerAttribute) Response.Write("The binding direction is: " & tca.BindingDirection.ToString()) End If End Sub </script> <html > <head runat="server"> <title>TemplateContainerAttribute Example</title> </head> <body> <form id="form1" runat="server"> <div> <aspSample:VB_TemplatedFirstControl id="TemplatedFirstControl1" runat="server"> <FirstTemplate>This is the first template.</FirstTemplate> </aspSample:VB_TemplatedFirstControl> <br /> <aspSample:VB_TemplatedFirstControl id="TemplatedFirstControl2" runat="server"> </aspSample:VB_TemplatedFirstControl> </div> </form> </body> </html>
<%@ Page Language="C#" %> <%@ Import Namespace="System.Reflection" %> <%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS.Controls" Assembly="Samples.AspNet.CS.Controls" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { // Get the class type for which to access metadata. Type clsType = typeof(TemplatedFirstControl); // Get the PropertyInfo object for FirstTemplate. PropertyInfo pInfo = clsType.GetProperty("FirstTemplate"); // See if the TemplateContainer attribute is defined for this property. bool isDef = Attribute.IsDefined(pInfo, typeof(TemplateContainerAttribute)); // Display the result if the attribute exists. if (isDef) { TemplateContainerAttribute tca = (TemplateContainerAttribute)Attribute.GetCustomAttribute(pInfo, typeof(TemplateContainerAttribute)); Response.Write("The binding direction is: " + tca.BindingDirection.ToString()); } } </script> <html > <head runat="server"> <title>TemplateContainerAttribute Example</title> </head> <body> <form id="form1" runat="server"> <div> <aspSample:TemplatedFirstControl id="TemplatedFirstControl1" runat="server"> <FirstTemplate>This is the first template.</FirstTemplate> </aspSample:TemplatedFirstControl> <br /> <aspSample:TemplatedFirstControl id="TemplatedFirstControl2" runat="server"> </aspSample:TemplatedFirstControl> </div> </form> </body> </html>


System.Attribute
System.Web.UI.TemplateContainerAttribute


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


TemplateContainerAttribute コンストラクタ (Type)
アセンブリ: System.Web (system.web.dll 内)

- containerType

TemplatedFirstControl という名前の template 宣言されたコントロールを作成し、これを FirstTemplateContainer という名前のコンテナと関連付ける方法を次のコード例に示します。このコード例では、テンプレートが指定されない場合はサーバー時間を表示し、テンプレートが指定される場合はテンプレートの内容を表示するカスタム コントロールが作成されます。TemplateContainerAttribute クラスが FirstTemplate プロパティに対して使用されています。
' File name:templatecontainerattribute.vb. Imports System Imports System.Web Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.Collections Namespace Samples.AspNet.VB.Controls <ParseChildren(True)> _ Public Class VB_TemplatedFirstControl Inherits Control Implements INamingContainer Private _firstTemplate As ITemplate Private [_text] As [String] = Nothing Private _myTemplateContainer As Control <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _ Protected Overrides Sub OnDataBinding(ByVal e As EventArgs) EnsureChildControls() MyBase.OnDataBinding(e) End Sub Public Property FirstTemplate() As ITemplate Get Return _firstTemplate End Get Set(ByVal value As ITemplate) _firstTemplate = Value End Set End Property Public Property [Text]() As [String] Get Return [_text] End Get Set(ByVal value As [String]) [_text] = Value End Set End Property Public ReadOnly Property DateTime() As [String] Get Return System.DateTime.Now.ToLongTimeString() End Get End Property Public ReadOnly Property MyTemplateContainer() As Control Get Return _myTemplateContainer End Get End Property <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _ Protected Overrides Sub CreateChildControls() If Not (FirstTemplate Is Nothing) Then _myTemplateContainer = New VB_FirstTemplateContainer(Me) FirstTemplate.InstantiateIn(_myTemplateContainer) Controls.Add(_myTemplateContainer) Else Controls.Add(New LiteralControl([Text] + " " + DateTime)) End If End Sub 'CreateChildControls End Class 'VB_TemplatedFirstControl Public Class VB_FirstTemplateContainer Inherits Control Implements INamingContainer Private _parent As VB_TemplatedFirstControl Public Sub New(ByVal parent As VB_TemplatedFirstControl) Me._parent = parent End Sub 'New Public ReadOnly Property [Text]() As [String] Get Return _parent.Text End Get End Property Public ReadOnly Property DateTime() As [String] Get Return _parent.DateTime End Get End Property End Class 'VB_FirstTemplateContainer End Namespace 'CustomControls
using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Collections; namespace Samples.AspNet.CS.Controls { [ParseChildren(true)] public class TemplatedFirstControl : Control, INamingContainer { private ITemplate firstTemplate; private String text = null; private Control myTemplateContainer; [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")] protected override void OnDataBinding(EventArgs e) { EnsureChildControls(); base.OnDataBinding(e); } [TemplateContainer(typeof(FirstTemplateContainer))] public ITemplate FirstTemplate { get { return firstTemplate; } set { firstTemplate = value; } } public String Text { get { return text; } set { text = value; } } public String DateTime { get { return System.DateTime.Now.ToLongTimeString(); } } public Control MyTemplateContainer { get { return myTemplateContainer; } } [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")] protected override void CreateChildControls() { if (FirstTemplate != null) { myTemplateContainer = new FirstTemplateContainer(this); FirstTemplate.InstantiateIn(myTemplateContainer); Controls.Add(myTemplateContainer); } else { Controls.Add(new LiteralControl(Text + " " + DateTime)); } } } public class FirstTemplateContainer : Control, INamingContainer { private TemplatedFirstControl parent; public FirstTemplateContainer(TemplatedFirstControl parent) { this.parent = parent; } public String Text { get { return parent.Text; } } public String DateTime { get { return parent.DateTime; } } } }
package Samples.AspNet.CS.Controls; /* File name:templatecontainerattribute.jsl. */ import System.*; import System.Web.*; import System.Web.UI.*; import System.Web.UI.WebControls.*; import System.Collections.*; /** @attribute ParseChildren(true) */ public class TemplatedFirstControl extends Control implements INamingContainer { private ITemplate firstTemplate; private String text = null; private Control myTemplateContainer; protected void OnDataBinding(EventArgs e) { EnsureChildControls(); super.OnDataBinding(e); } //OnDataBinding /** @attribute TemplateContainer(FirstTemplateContainer.class) */ /** @property */ public ITemplate get_FirstTemplate() { return firstTemplate; } //get_FirstTemplate /** @property */ public void set_FirstTemplate(ITemplate value) { firstTemplate = value; } //set_FirstTemplate /** @property */ public String get_Text() { return text; } //get_Text /** @property */ public void set_Text(String value) { text = value; } //set_Text /** @property */ public String get_DateTime() { return System.DateTime.get_Now().ToLongTimeString(); } //get_DateTime /** @property */ public Control get_MyTemplateContainer() { return myTemplateContainer; } //get_MyTemplateContainer protected void CreateChildControls() { if (get_FirstTemplate() != null) { myTemplateContainer = new FirstTemplateContainer(this); get_FirstTemplate().InstantiateIn(myTemplateContainer); get_Controls().Add(myTemplateContainer); } else { get_Controls().Add(new LiteralControl(get_Text() + " " + DateTime.class)); } } //CreateChildControls } //TemplatedFirstControl public class FirstTemplateContainer extends Control implements INamingContainer { private TemplatedFirstControl parent; public FirstTemplateContainer(TemplatedFirstControl parent) { this.parent = parent; } //FirstTemplateContainer /** @property */ public String get_Text() { return parent.get_Text(); } //get_Text /** @property */ public String get_DateTime() { return parent.get_DateTime(); } //get_DateTime } //FirstTemplateContainer

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


TemplateContainerAttribute コンストラクタ

名前 | 説明 |
---|---|
TemplateContainerAttribute (Type) | コンテナの型を指定して、TemplateContainerAttribute クラスの新しいインスタンスを初期化します。 |
TemplateContainerAttribute (Type, BindingDirection) | 指定したコンテナの型と BindingDirection プロパティを使用して、TemplateContainerAttribute クラスの新しいインスタンスを初期化します。 |

TemplateContainerAttribute コンストラクタ (Type, BindingDirection)
アセンブリ: System.Web (system.web.dll 内)

Dim containerType As Type Dim bindingDirection As BindingDirection Dim instance As New TemplateContainerAttribute(containerType, bindingDirection)
public function TemplateContainerAttribute ( containerType : Type, bindingDirection : BindingDirection )
- containerType
- bindingDirection
コンテナ コントロールの BindingDirection。

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


TemplateContainerAttribute プロパティ

名前 | 説明 | |
---|---|---|
![]() | BindingDirection | コンテナ コントロールのバインディング方向を取得します。 |
![]() | ContainerType | コンテナ コントロールの型を取得します。 |
![]() | TypeId | 派生クラスに実装されている場合は、この Attribute の一意の識別子を取得します。 ( Attribute から継承されます。) |

TemplateContainerAttribute メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 ( Attribute から継承されます。) |
![]() | GetCustomAttribute | オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用された指定した型のカスタム属性を取得します。 ( Attribute から継承されます。) |
![]() | GetCustomAttributes | オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されたカスタム属性の配列を取得します。 ( Attribute から継承されます。) |
![]() | GetHashCode | このインスタンスのハッシュ コードを返します。 ( Attribute から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | IsDefaultAttribute | 派生クラス内でオーバーライドされたときに、このインスタンスの値が派生クラスの既定値かどうかを示します。 ( Attribute から継承されます。) |
![]() | IsDefined | オーバーロードされます。 指定した型のカスタム属性が、アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されているかどうかを判断します。 ( Attribute から継承されます。) |
![]() | Match | 派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。 ( Attribute から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

TemplateContainerAttribute メンバ
ITemplate インターフェイスを返し、TemplateContainerAttribute 属性でマークされるプロパティのコンテナ コントロールの基本型を宣言します。ITemplate プロパティを持つコントロールは、INamingContainer インターフェイスを実装する必要があります。このクラスは継承できません。
TemplateContainerAttribute データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | BindingDirection | コンテナ コントロールのバインディング方向を取得します。 |
![]() | ContainerType | コンテナ コントロールの型を取得します。 |
![]() | TypeId | 派生クラスに実装されている場合は、この Attribute の一意の識別子を取得します。(Attribute から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 ( Attribute から継承されます。) |
![]() | GetCustomAttribute | オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用された指定した型のカスタム属性を取得します。 (Attribute から継承されます。) |
![]() | GetCustomAttributes | オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されたカスタム属性の配列を取得します。 (Attribute から継承されます。) |
![]() | GetHashCode | このインスタンスのハッシュ コードを返します。 (Attribute から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | IsDefaultAttribute | 派生クラス内でオーバーライドされたときに、このインスタンスの値が派生クラスの既定値かどうかを示します。 (Attribute から継承されます。) |
![]() | IsDefined | オーバーロードされます。 指定した型のカスタム属性が、アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されているかどうかを判断します。 (Attribute から継承されます。) |
![]() | Match | 派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。 (Attribute から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

- TemplateContainerAttributeのページへのリンク