Subscribe

RSS Feed (xml)

Getting and Setting User Control Properties in ASP.NET

User Control public properties can be set declaratively or programmatically from the
page that contains them.Their values can also be read and used by the containing page.
Full-property declaration should be used as a best practice, but for quick-and-dirty work,
you might use public variables instead.
The User Control (code0203vb.ascx) is as follows:
<%@ Control Language=”vb” %>
<script runat=”server”>
Private _title As String
Private _author As String
Private _renderDate As DateTime = System.DateTime.Now
Public Property Title() As String
Get
Return _title
End Get
Set
_title = value
End Set
End Property
Public Property Author() As String
Get
Return _author
End Get
Set
_author = value
End Set
End Property
Public ReadOnly Property RenderDate() As DateTime
Get
Return _renderDate
End Get
End Property
Private Sub Page_Load(sender As Object, e As EventArgs)
TitleLabel.Text = Title
AuthorLabel.Text = Author
End Sub
</script>
<h1><asp:Label id=”TitleLabel” runat=”server” /></h1>
<h3><asp:Label id=”AuthorLabel” runat=”server” />
</h1>
This User Control is for a header of a story. It includes input parameters for the title and
author of the story. It also exposes a readonly property for RenderDate that the calling
page can use if it chooses to do so.The following page uses this control. It demonstrates
how to set its Title property declaratively (in the HTML tag for the control) and how
to set its Author property programmatically. It also reads the RenderDate and displays it
in a Label.The ASPX page (code0203vb.aspx) is as follows:
<%@ Page Language=”VB” %>
<%@ Register TagPrefix=”uc1” TagName=”header” Src=”code0203vb.ascx” %>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN” >
<HTML>
<HEAD>
<title>User Controls</title>
<Script Runat=”Server”>
Private Sub Page_Load(sender As Object, e As System.EventArgs)
header1.Author = “Snoopy”
FooterLabel.Text = “Rendered “ + header1.RenderDate
End Sub ‘Page_Load
</Script>
</HEAD>
<body>
<form id=”dependingdropdowns” method=”post” runat=”server”>
<uc1:header id=”header1” runat=”server”
Title=”A Tale of Mystery”></uc1:header>
<p>It was a dark and stormy night.</p>
<hr />
<asp:Label ID=”FooterLabel” Runat=”server” />
</form>
</body>
</HTML>

Note: that these examples do not use codebehind files, so all class members are available
locally. It is sometimes necessary to use reflection to access properties of User Controls
that do not use codebehind from pages that do use codebehind.

No comments:

Archives

Variety in the Web World