User controls use the file extension .ascx instead of .aspx
User controls' code-behind files inherit from the System.Web.UI.UserControl class.
The .ascx file for a user control begins with a <%@ Control %> directive instead of a <%@ Page %> directive.
User controls can't be requested directly by a web browser.
Instead, they must be embedded inside other web pages.
File: Control.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Control.ascx.cs" Inherits="Footer" %>
<asp:Label id="lblFooter" runat="server" />
File: Control.ascx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Footer : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
lblFooter.Text = "This page was served at ";
if (format == FooterFormat.LongDate)
{
lblFooter.Text += DateTime.Now.ToLongDateString();
}
else if (format == FooterFormat.ShortTime)
{
lblFooter.Text += DateTime.Now.ToShortTimeString();
}
}
public enum FooterFormat
{ LongDate, ShortTime }
private FooterFormat format = FooterFormat.LongDate;
public FooterFormat Format
{
get { return format; }
set { format = value; }
}
}
File: Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="FooterHost" %>
<%@ Register TagPrefix="Java2s" TagName="Footer" Src="Control.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Footer Host</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h2>A Page With a Configurable Footer</h2>
<br /><br /><br />
<hr />
<asp:RadioButton id="optShort" runat="server" GroupName="Format" Text="Short Format"></asp:RadioButton>
<br />
<asp:RadioButton id="optLong" runat="server" GroupName="Format" Text="Long Format"></asp:RadioButton>
<br /><br />
<asp:Button id="cmdRefresh" runat="server" Text="Refresh"></asp:Button>
<hr />
<br />
<Java2s:Footer id="Footer1" runat="server"></Java2s:Footer>
</div>
</form>
</body>
</html>
File: Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class FooterHost : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (optLong.Checked)
{
Footer1.Format = Footer.FooterFormat.LongDate;
}
else if (optShort.Checked)
{
Footer1.Format = Footer.FooterFormat.ShortTime;
}
}
}