Auf Englisch lesen

Freigeben über


ITemplate Schnittstelle

Definition

Definiert das Verhalten für das Auffüllen eines auf Vorlagen basierenden ASP.NET-Serversteuerelements mit untergeordneten Steuerelementen. Die untergeordneten Steuerelemente stellen die Inlinevorlagen dar, die für die Seite definiert sind.

public interface ITemplate
Abgeleitet

Beispiele

Im folgenden Codebeispiel wird ein einfaches vorlagenbasiertes Serversteuerelement veranschaulicht, das die ITemplate Schnittstelle zum Erstellen einer vorlagenbasierten Eigenschaft verwendet.

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

Hinweise

Diese Schnittstelle wird von benutzerdefinierten Serversteuerelementen verwendet, aber nie von ihnen implementiert. ASP.NET implementiert sie immer.

Methoden

InstantiateIn(Control)

Definiert bei der Implementierung durch eine Klasse das Control-Objekt, zu dem untergeordnete Steuerelemente und Vorlagen gehören. Diese untergeordneten Steuerelemente wiederum werden innerhalb einer Inlinevorlage definiert.

Gilt für

Siehe auch