TemplateInstanceAttribute Class
Assembly: System.Web (in system.web.dll)
'Declaration <AttributeUsageAttribute(AttributeTargets.Property)> _ Public NotInheritable Class TemplateInstanceAttribute Inherits Attribute 'Usage Dim instance As TemplateInstanceAttribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Property) */ public final class TemplateInstanceAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.Property) public final class TemplateInstanceAttribute extends Attribute
Not applicable.
The TemplateInstanceAttribute class allows you to mark a template property as one that allows single or multiple instantiations. A template that only allows a single instantiation can have the controls that are contained inside of it referenced. The ZoneTemplate property is an example of a property that can be instantiated only one time.
This TemplateInstanceAttribute class is optional. If a template property is not extended with a TemplateInstanceAttribute class, the default value, the Multiple field, is used. For more information about using attributes, see Extending Metadata Using Attributes.
The following code example demonstrates how to use the TemplateInstance enumeration and the TemplateInstanceAttribute class. A custom LoginView control named MyLoginViewA overrides the AnonymousTemplate property and uses the TemplateInstanceAttribute class to specify that only one instance of the AnonymousTemplate property is created.
Imports Microsoft.VisualBasic Imports System Imports System.Data Imports System.ComponentModel Imports System.Web Imports System.Web.UI Imports System.Web.UI.WebControls Namespace Samples.AspNet.VB.Controls Public Class MyLoginViewA Inherits LoginView Private _anonymoustemplate As ITemplate <Browsable(False), DefaultValue(""), PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(GetType(LoginView)), TemplateInstance(TemplateInstance.Single)> _ Public Overrides Property AnonymousTemplate() As System.Web.UI.ITemplate Get Return _anonymoustemplate End Get Set(ByVal value As System.Web.UI.ITemplate) _anonymoustemplate = value End Set End Property End Class End Namespace
The following code example is an ASPX file that uses the MyLoginViewA control and demonstrates how to access properties of the TemplateInstanceAttribute class.
<%@ Page Language="VB" %> <%@ Import Namespace="System.Reflection" %> <%@ Register TagPrefix="AspNetSamples" Namespace="Samples.AspNet.VB.Controls" Assembly="Samples.AspNet.VB.Controls" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) ' Get the class type for which to access metadata. Dim clsType As Type = GetType(MyLoginViewA) ' Get the PropertyInfo object for FirstTemplate. Dim pInfo As PropertyInfo = clsType.GetProperty("AnonymousTemplate") ' See if the TemplateInstanceAttribute is defined for this property. Dim isDef As Boolean = Attribute.IsDefined(pInfo, GetType(TemplateContainerAttribute)) ' Display the result if the attribute exists. If isDef Then Dim tia As TemplateInstanceAttribute = CType(Attribute.GetCustomAttribute(pInfo, GetType(TemplateInstanceAttribute)), TemplateInstanceAttribute) Response.Write("The <AnonymousTemplate> has the TemplateInstanceAttribute = " & tia.Instances.ToString() & ".<br />") If (tia.IsDefaultAttribute()) Then Response.Write("The TemplateInstanceAttribute used is the same as the default instance.") Else Response.Write("The TemplateInstanceAttribute used is not the same as the default instance.") End If End If End Sub </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>TemplateInstance Example</title> </head> <body> <form id="form1" runat="server"> <div> <AspNetSamples:MyLoginViewA id="MyLoginViewA1" runat="server"> <AnonymousTemplate> <asp:Label ID="LoginViewLabel1" runat="server" Text="LoginView Anonymous Template Text"/> </AnonymousTemplate> </AspNetSamples:MyLoginViewA> </div> </form> </body> </html>
- AspNetHostingPermission for operating in a hosted environment. Demand value: LinkDemand; Permission value: Minimal.