ITemplate-Schnittstelle
Definiert das Verhalten für das Auffüllen eines auf Vorlagen basierenden ASP.NET-Serversteuerelements mit untergeordneten Steuerelementen. Die untergeordneten Steuerelemente stellen die Inlinevorlagen dar, die für die Seite definiert sind.
Namespace: System.Web.UI
Assembly: System.Web (in system.web.dll)
Syntax
'Declaration
Public Interface ITemplate
'Usage
Dim instance As ITemplate
public interface ITemplate
public interface class ITemplate
public interface ITemplate
public interface ITemplate
Hinweise
Diese Schnittstelle wird von benutzerdefinierten Serversteuerelementen verwendet, jedoch nie von ihnen implementiert. Sie wird immer von ASP.NET implementiert.
Thema | Position |
---|---|
Gewusst wie: Erstellen von vorlagenbasierten ASP.NET-Benutzersteuerelementen | Erstellen von ASP.NET-Webanwendungen in Visual Studio |
Gewusst wie: Dynamisches Erstellen von Vorlagen in DataList-Webserversteuerelementen | Erstellen von ASP.NET-Webanwendungen in Visual Studio |
Gewusst wie: Erstellen von vorlagenbasierten ASP.NET-Benutzersteuerelementen | Erstellen von ASP.NET-Webanwendungen in Visual Studio |
Gewusst wie: Dynamisches Erstellen von Vorlagen in DataList-Webserversteuerelementen | Erstellen von ASP.NET-Webanwendungen in Visual Studio |
Gewusst wie: Erstellen von vorlagenbasierten ASP.NET-Benutzersteuerelementen | Erstellen von ASP.NET-Webanwendungen |
Gewusst wie: Dynamisches Erstellen von Vorlagen in DataList-Webserversteuerelementen | Erstellen von ASP.NET-Webanwendungen |
Beispiel
Im folgenden Codebeispiel wird ein einfaches Serversteuerelement mit Vorlagen veranschaulicht, das mithilfe der ITemplate-Schnittstelle eine auf Vorlagen beruhende Eigenschaft erstellt.
Imports System
Imports System.Web
Imports System.Web.UI
Namespace TemplateControlSamplesVB
Public Class TemplateItem
Inherits Control
Implements INamingContainer
Private _message As String = Nothing
Public Sub New(Message As String)
_message = message
End Sub
Public Property Message As String
Get
Return _message
End Get
Set
_message = Value
End Set
End Property
End Class
<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust"), _
ParseChildren(true)> _
Public Class Template1VB
Inherits Control
Implements INamingContainer
Private _messageTemplate As ITemplate = Nothing
Private _message As String = Nothing
Public Property Message As String
Get
Return _message
End Get
Set
_message = Value
End Set
End Property
<TemplateContainer(GetType(TemplateItem))> _
Public Property MessageTemplate As ITemplate
Get
Return _messageTemplate
End Get
Set
_messageTemplate = Value
End Set
End Property
Protected Overrides Sub CreateChildControls()
' If a template has been specified, use it to create children.
' Otherwise, create a single LiteralControl with the message value.
If Not (MessageTemplate Is Nothing)
Controls.Clear()
Dim I As New TemplateItem(Me.Message)
MessageTemplate.InstantiateIn(I)
Controls.Add(I)
Else
Me.Controls.Add(New LiteralControl(Me.Message))
End If
End Sub
End Class
End Namespace
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));
}
}
}
}
package TemplateControlSamples;
import System.*;
import System.Web.*;
import System.Web.UI.*;
public class TemplateItem extends Control implements INamingContainer
{
private String _message = null;
public TemplateItem(String message)
{
_message = message;
} //TemplateItem
/** @property
*/
public String get_Message()
{
return _message ;
} //get_Message
/** @property
*/
public void set_Message ( String value )
{
_message = value;
} //set_Message
} //TemplateItem
/** @attribute ParseChildren(true)
*/
public class Template1 extends Control implements INamingContainer
{
private ITemplate _messageTemplate = null;
private String _message = null;
/** @property
*/
public String get_Message()
{
return _message ;
} //get_Message
/** @property
*/
public void set_Message ( String value )
{
_message = value;
} //set_Message
/** @attribute PersistenceMode(PersistenceMode.InnerProperty)
@attribute TemplateContainer(TemplateItem.class)
*/
/** @property
*/
public ITemplate get_MessageTemplate()
{
return _messageTemplate ;
}
/** @property
*/
public void set_MessageTemplate ( ITemplate value )
{
_messageTemplate = value;
}
protected void CreateChildControls()
{
// If a template has been specified, use it to create children.
// Otherwise, create a single LiteralControl with the message value.
if ( get_MessageTemplate() != null ) {
get_Controls().Clear();
TemplateItem i = new TemplateItem(this.get_Message());
get_MessageTemplate().InstantiateIn(i);
get_Controls().Add(i);
}
else {
this.get_Controls().Add(new LiteralControl(this.get_Message()));
}
} //CreateChildControls
} //Template1
import System
import System.Web
import System.Web.UI
package TemplateControlSamplesJS{
class TemplateItem extends Control implements INamingContainer{
private var message : String = null
function TemplateItem(message : String){
this.message = message
}
function get Message() : String{
return message
}
function set Message(value : String){
message = value
}
}
public ParseChildren(true)
class Template1JS extends Control implements INamingContainer{
private var messageTemplate : ITemplate = null
private var message : String = null
function get Message(): String{
return message
}
function set Message(value : String){
message = value
}
public TemplateContainer(TemplateItem)
function get MessageTemplate() : ITemplate{
return messageTemplate
}
function set MessageTemplate(value : ITemplate){
messageTemplate = value
}
protected function CreateChildControls(){
// if(a template has been specified, use it to create children.
// Otherwise, create a single literalcontrol with message value
if(MessageTemplate != null){
Controls.Clear()
var I : TemplateItem = new TemplateItem(this.Message)
MessageTemplate.InstantiateIn(I)
Controls.Add(I)
}else
this.Controls.Add(new LiteralControl(this.Message))
}
}
}
.NET Framework-Sicherheit
- AspNetHostingPermission für den Betrieb in einer Hostumgebung. Anforderungswert: LinkDemand; Berechtigungswert: Minimal.
- AspNetHostingPermission für den Betrieb in einer Hostumgebung. Anforderungswert: InheritanceDemand; Berechtigungswert: Minimal.
Plattformen
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0