英語で読む

次の方法で共有


ITemplate インターフェイス

定義

テンプレート宣言された ASP.NET サーバー コントロールに子コントロールを設定する動作を定義します。 子コントロールは、そのページ上に定義されるインライン テンプレートを表します。

public interface ITemplate
派生

次のコード例は、 インターフェイスを使用してテンプレート化されたプロパティを ITemplate 作成する単純なテンプレート化されたサーバー コントロールを示しています。

using System;
using System.Web;
using System.Web.UI;

namespace TemplateControlSamples {

    public class TemplateItem : Control, INamingContainer {
        private String     _message         = null;

        public TemplateItem(String message) {
            _message = message;
        }

        public String Message {

           get {
              return _message;
           }
           set {
              _message = value;
           }
        }
    }

    [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")]
    [ParseChildren(true)]
    public class Template1 : Control, INamingContainer {

        private ITemplate  _messageTemplate = null;
        private String     _message         = null;

        public String Message {

           get {
              return _message;
           }
           set {
              _message = value;
           }
        }

        [
            PersistenceMode(PersistenceMode.InnerProperty),
            TemplateContainer(typeof(TemplateItem))
        ]
        public ITemplate MessageTemplate {
           get {
              return _messageTemplate;
           }
           set {
              _messageTemplate = value;
           }
        }

        protected override void CreateChildControls() {

           // If a template has been specified, use it to create children.
           // Otherwise, create a single LiteralControl with the message value.

           if (MessageTemplate != null) {
              Controls.Clear();
              TemplateItem i = new TemplateItem(this.Message);
              MessageTemplate.InstantiateIn(i);
              Controls.Add(i);
           }
           else {
              this.Controls.Add(new LiteralControl(this.Message));
           }
        }
    }
}

注釈

このインターフェイスはカスタム サーバー コントロールによって使用されますが、実装されることはありません。 ASP.NET は常にそれを実装します。

メソッド

InstantiateIn(Control)

クラスによって実装されている場合は、子コントロールとテンプレートが属する Control オブジェクトを定義します。 これらの子コントロールは、インライン テンプレート内で順番に定義されます。

適用対象

製品 バージョン
.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

こちらもご覧ください