ITemplate Interfejs

Definicja

Definiuje zachowanie wypełniania szablonu ASP.NET kontroli serwera za pomocą kontrolek podrzędnych. Kontrolki podrzędne reprezentują wbudowane szablony zdefiniowane na stronie.

C#
public interface ITemplate
Pochodne

Przykłady

Poniższy przykład kodu przedstawia prostą szablonową kontrolkę serwera, która używa interfejsu ITemplate do utworzenia właściwości szablonu.

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

Uwagi

Ten interfejs jest używany przez niestandardowe kontrolki serwera, ale nigdy ich nie implementuje. ASP.NET zawsze go implementuje.

Metody

InstantiateIn(Control)

W przypadku implementacji przez klasę definiuje Control obiekt, do którego należą kontrolki podrzędne i szablony. Te kontrolki podrzędne są z kolei definiowane w szablonie wbudowanym.

Dotyczy

Produkt Wersje
.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

Zobacz też