TemplateContainerAttribute コンストラクター

定義

TemplateContainerAttribute クラスの新しいインスタンスを初期化します。

オーバーロード

TemplateContainerAttribute(Type)

コンテナーの型を指定して、TemplateContainerAttribute クラスの新しいインスタンスを初期化します。

TemplateContainerAttribute(Type, BindingDirection)

指定したコンテナーの型と TemplateContainerAttribute プロパティを使用して、BindingDirection クラスの新しいインスタンスを初期化します。

TemplateContainerAttribute(Type)

コンテナーの型を指定して、TemplateContainerAttribute クラスの新しいインスタンスを初期化します。

public TemplateContainerAttribute (Type containerType);

パラメーター

containerType
Type

コンテナー コントロールの Type

次のコード例は、 という名前のテンプレートコントロールを作成し、 という名前TemplatedFirstControlFirstTemplateContainerのコンテナーに関連付ける方法を示しています。 これにより、テンプレートが指定されていないサーバー時刻と、テンプレートが指定されたときにテンプレートのコンテンツを表示するカスタム コントロールを作成できます。 クラスは TemplateContainerAttribute 、 プロパティに FirstTemplate 使用されます。

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;
        }
      }
    }
  }

こちらもご覧ください

適用対象

.NET Framework 4.8.1 およびその他のバージョン
製品 バージョン
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

TemplateContainerAttribute(Type, BindingDirection)

指定したコンテナーの型と TemplateContainerAttribute プロパティを使用して、BindingDirection クラスの新しいインスタンスを初期化します。

public TemplateContainerAttribute (Type containerType, System.ComponentModel.BindingDirection bindingDirection);

パラメーター

containerType
Type

コンテナー コントロールの Type

bindingDirection
BindingDirection

コンテナー コントロールの BindingDirection

こちらもご覧ください

適用対象

.NET Framework 4.8.1 およびその他のバージョン
製品 バージョン
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1