Click to Rate and Give Feedback
MSDN
MSDN Library
.NET Development
.NET Framework 3.5
This page is specific to
Microsoft Visual Studio 2008/.NET Framework 3.5

Other versions are also available for the following:
.NET Framework Class Library
TemplateControl Class

Updated: November 2007

Provides the Page class and the UserControl class with a base set of functionality.

Namespace:  System.Web.UI
Assembly:  System.Web (in System.Web.dll)

Visual Basic (Declaration)
<AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level := AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level := AspNetHostingPermissionLevel.Minimal)> _
Public MustInherit Class TemplateControl _
    Inherits Control _
    Implements INamingContainer, IFilterResolutionService
Visual Basic (Usage)
Dim instance As TemplateControl
C#
[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public abstract class TemplateControl : Control, 
    INamingContainer, IFilterResolutionService
Visual C++
[AspNetHostingPermissionAttribute(SecurityAction::LinkDemand, Level = AspNetHostingPermissionLevel::Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction::InheritanceDemand, Level = AspNetHostingPermissionLevel::Minimal)]
public ref class TemplateControl abstract : public Control, 
    INamingContainer, IFilterResolutionService
J#
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal) */
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal) */
public abstract class TemplateControl extends Control implements INamingContainer, 
    IFilterResolutionService
JScript
public abstract class TemplateControl extends Control implements INamingContainer, IFilterResolutionService
ASP.NET
<asp:TemplateControl />

The TemplateControl class is an abstract class that provides common properties and methods for the Page class and the UserControl class. A new instance of the TemplateControl is not created directly.

The TemplateControl class defines methods supporting declarative data-binding expressions:

  • Use the Eval method for data-binding expression involving data sources, such as simple properties or expressions.

  • Use the XPath method for parsing and evaluating an XPath data-binding expression.

  • Use the XPathSelect method for data-binding against an expression containing an XPath select statement. The result is a node collection that implements the IEnumerable interface.

For more information on data-binding expression, see Data-Binding Expression Syntax and Binding to Databases.

The following code example demonstrates how to derive a control named MyControl from the TemplateControl class and override the Construct method. When MyControl is initialized, the overridden Construct method is called.

Visual Basic
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Security.Permissions

' The custom user control class.
<AspNetHostingPermission(SecurityAction.Demand, _
   Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class MyControl
   Inherits UserControl
   ' Create a Message property and accessors.
   Private _message As String = Nothing

   Public Property Message() As String
      Get
         Return _message
      End Get
      Set
         _message = value
      End Set
   End Property

    ' Create an event for this user control
    Public Event myControl As System.EventHandler

    ' Override the default constructor.
    Protected Overrides Sub Construct()
        ' Specify the handler for the OnInit method.
        AddHandler Me.myControl, AddressOf MyInit
    End Sub

    Protected Overrides Sub OnInit(ByVal e As EventArgs)
        RaiseEvent myControl(Me, e)
        Response.Write("The OnInit() method is used to raise the Init event.")
    End Sub


    ' Use the MyInit handler to set the Message property
    Sub MyInit(ByVal sender As Object, ByVal e As System.EventArgs)
        Message = "Hello World!"
    End Sub

    ' Render the value of the Message property
    Protected Overrides Sub Render(ByVal writer As HtmlTextWriter)
        writer.Write(("<br>Message :" & Message))
    End Sub
End Class

C#
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Security.Permissions;

// The custom user control class.
[AspNetHostingPermission(SecurityAction.Demand,
   Level = AspNetHostingPermissionLevel.Minimal)]
public class MyControl : UserControl
{
    // Create a Message property and accessors.
    private string _message = "No message";

    public string Message
    {
        get { return _message; }
        set { _message = value; }
    }

    // Create an event for this user control
    public event System.EventHandler myControl;

    // Override the default constructor.
    protected override void Construct()
    {
        // Specify the handler for the OnInit method.
        this.myControl += new EventHandler(MyInit);
    }

    protected override void OnInit(EventArgs e)
    {
        myControl(this, e);
        Response.Write("The OnInit() method is used to raise the Init event.");
    }

    // Use the MyInit handler to set the Message property
    void MyInit(object sender, System.EventArgs e)
    {
        Message = "Hello World!";
    }

    // Render the value of the Message property
    protected override void Render(HtmlTextWriter writer)
    {
        writer.Write("<br>Message :" + Message);
    }
}

System..::.Object
  System.Web.UI..::.Control
    System.Web.UI..::.TemplateControl
      System.Web.UI..::.Page
      System.Web.UI..::.UserControl
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0
Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Processing
© 2008 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker