Mega Code Archive

 
Categories / ASP.Net Tutorial / Custom Controls
 

Differences between user controls and web pages

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="rntsoft" 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 />     <rntsoft:Footer id="Footer1" runat="server"></rntsoft: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;         }     } }