ITemplate Interface
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)
The ITemplate type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | InstantiateIn | 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.
| Topic | Location |
|---|---|
| How to: Create Templated ASP.NET User Controls | Building ASP .NET Web Applications |
| How to: Create Templates Dynamically in DataList Web Server Controls | Building ASP .NET Web Applications |
| How to: Create Templated ASP.NET User Controls | Building ASP .NET Web Applications |
| How to: Create Templates Dynamically in DataList Web Server Controls | Building ASP .NET Web Applications |
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)); } } } }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
