次の方法で共有


ITemplate インターフェイス

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

名前空間: System.Web.UI
アセンブリ: System.Web (system.web.dll 内)

構文

'宣言
Public Interface ITemplate
'使用
Dim instance As ITemplate
public interface ITemplate
public interface class ITemplate
public interface ITemplate
public interface ITemplate
適用できません。

解説

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

トピック 場所
方法 : template 宣言された ASP.NET ユーザー コントロールを作成する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : DataList Web サーバー コントロールのテンプレートを動的に作成する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : template 宣言された ASP.NET ユーザー コントロールを作成する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : DataList Web サーバー コントロールのテンプレートを動的に作成する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : template 宣言された ASP.NET ユーザー コントロールを作成する ASP .NET Web アプリケーションの作成
方法 : DataList Web サーバー コントロールのテンプレートを動的に作成する ASP .NET Web アプリケーションの作成

使用例

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

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

Namespace TemplateControlSamplesVB

    Public Class TemplateItem
        Inherits Control
        Implements INamingContainer

        Private _message As String = Nothing

        Public Sub New(Message As String)
            _message = message
        End Sub

        Public Property Message As String
           Get
              Return _message
           End Get
           Set
              _message = Value
           End Set
        End Property
    End Class
    <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust"), _
    ParseChildren(true)> _
    Public Class Template1VB
        Inherits Control
        Implements INamingContainer

        Private _messageTemplate As ITemplate = Nothing
        Private _message As String = Nothing

        Public Property Message As String

           Get
              Return _message
           End Get
           Set
              _message = Value
           End Set
        End Property

        <TemplateContainer(GetType(TemplateItem))> _
        Public Property MessageTemplate As ITemplate

           Get
              Return _messageTemplate
           End Get
           Set
              _messageTemplate = Value
           End Set
        End Property

        Protected Overrides Sub CreateChildControls()

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

           If Not (MessageTemplate Is Nothing)
              Controls.Clear()
              Dim I As New TemplateItem(Me.Message)
              MessageTemplate.InstantiateIn(I)
              Controls.Add(I)
           Else
              Me.Controls.Add(New LiteralControl(Me.Message))
           End If
        End Sub

    End Class

End Namespace
   
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));
           }
        }
    }
}
   
package TemplateControlSamples;

import System.*;
import System.Web.*;
import System.Web.UI.*;   
   
public class TemplateItem extends Control implements INamingContainer
{
    private String _message = null;

    public TemplateItem(String message)
    {
        _message = message;
    } //TemplateItem
      
    /** @property 
     */
    public String get_Message()
    {
        return _message ;
    } //get_Message
    
    /** @property 
     */
    public void set_Message ( String value )
    {
        _message = value;
    } //set_Message
} //TemplateItem   
   
/** @attribute ParseChildren(true)
 */
public class Template1 extends Control implements INamingContainer
{
    private ITemplate _messageTemplate = null;
    private String _message = null;
      
    /** @property 
     */
    public String get_Message()
    {
        return _message ;
    } //get_Message

    /** @property 
     */
    public void set_Message ( String value )
    {
        _message = value;
    } //set_Message
      
    /** @attribute PersistenceMode(PersistenceMode.InnerProperty)
        @attribute TemplateContainer(TemplateItem.class)
     */      
      
    /** @property 
     */
    public ITemplate get_MessageTemplate()
    {
        return _messageTemplate ;
    }

    /** @property 
     */
    public void set_MessageTemplate ( ITemplate value )
    {
        _messageTemplate = value;
    }
      
    protected void CreateChildControls()
    {
        // If a template has been specified, use it to create children.
        // Otherwise, create a single LiteralControl with the message value.
        if ( get_MessageTemplate() != null  ) {
            get_Controls().Clear();
            TemplateItem i = new TemplateItem(this.get_Message());
            get_MessageTemplate().InstantiateIn(i);
            get_Controls().Add(i);
        }
        else {
            this.get_Controls().Add(new LiteralControl(this.get_Message()));
        }
    } //CreateChildControls
} //Template1
import System
import System.Web
import System.Web.UI

package TemplateControlSamplesJS{

    class TemplateItem extends Control implements INamingContainer{

        private var message : String = null

        function TemplateItem(message : String){
            this.message = message
        }

        function get Message() : String{
           return message
        }
        
        function set Message(value : String){
           message = value
        }
    }

    public ParseChildren(true)
    class Template1JS extends Control implements INamingContainer{

        private var messageTemplate : ITemplate = null
        private var message : String = null

        function get Message(): String{
           return message
        }
        
        function set Message(value : String){
           message = value
        }

        public TemplateContainer(TemplateItem)
        function get MessageTemplate() : ITemplate{
           return messageTemplate
        }
        
        function set MessageTemplate(value : ITemplate){
           messageTemplate = value
        }

        protected function CreateChildControls(){

           // if(a template has been specified, use it to create children.
           // Otherwise, create a single literalcontrol with message value

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

    }

}

.NET Framework のセキュリティ

  • AspNetHostingPermission  (ホスト環境での動作に必要なアクセス許可)要求値 : LinkDemand; アクセス許可値 : Minimal
  • AspNetHostingPermission  (ホスト環境での動作に必要なアクセス許可)要求値 : InheritanceDemand; アクセス許可値 : Minimal

プラットフォーム

Windows 98,Windows Server 2000 SP4,Windows CE,Windows Millennium Edition,Windows Mobile for Pocket PC,Windows Mobile for Smartphone,Windows Server 2003,Windows XP Media Center Edition,Windows XP Professional x64 Edition,Windows XP SP2,Windows XP Starter Edition

Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。

バージョン情報

.NET Framework

サポート対象 : 3.0,2.0,1.1,1.0

参照

関連項目

ITemplate メンバ
System.Web.UI 名前空間
Control