ITemplate Interface
.NET Framework (current version)
Defines the behavior for populating a templated ASP.NET server control with child controls. The child controls represent the inline templates defined on the page.
Assembly: System.Web (in System.Web.dll)
| Name | Description | |
|---|---|---|
![]() | InstantiateIn(Control) | When implemented by a class, defines the Control object that child controls and templates belong to. These child controls are in turn defined within an inline template. |
This interface is used by custom server controls, but never implemented by them. ASP.NET always implements it.
The following code example demonstrates a simple templated server control that uses the ITemplate interface to create a templated property.
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
Available since 1.1
Available since 1.1
Show:
.jpeg?cs-save-lang=1&cs-lang=csharp)