Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

ITemplate-Schnittstelle

 

Veröffentlicht: Oktober 2016

Definiert das Verhalten für ein ASP.NET-Serversteuerelement mit untergeordneten Steuerelementen auffüllen. Die untergeordneten Steuerelemente dar, die Inlinevorlagen auf der Seite definiert.

Namespace:   System.Web.UI
Assembly:  System.Web (in System.Web.dll)

public interface ITemplate

NameBeschreibung
System_CAPS_pubmethodInstantiateIn(Control)

Bei der Implementierung durch eine Klasse definiert die Control -Objekt, dass untergeordnete Steuerelemente und Vorlagen angehören. Diese untergeordneten Steuerelemente sind wiederum innerhalb einer Inlinevorlage definiert.

Diese Schnittstelle wird von benutzerdefinierten Steuerelementen verwendet, jedoch nie von ihnen implementiert. ASP.NET wird immer er implementiert.

Das folgende Codebeispiel veranschaulicht ein einfaches Serversteuerelement, das verwendet die ITemplate Schnittstelle zum Erstellen einer auf Vorlagen basierende Eigenschaft.

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

.NET Framework
Verfügbar seit 1.1
Zurück zum Anfang
Anzeigen: