Mega Code Archive

 
Categories / ASP.Net Tutorial / Custom Controls
 

Building a simple User control that randomly displays one image

Both the UserControl  class and the Page  class derive  from the base TemplateControl  class.  Custom control is stored in the file with .ascx extension.  You cannot request this file directly from a web browser.  Before using a web User control, you must register it.  <%@ Register %> directive contains the three attributes: TagPrefix:    namespace. You can use any string that you want. TagName:      name that you want to associate with the User control.                 Src:          virtual path to the User control (the path to the .ascx file). File: Control.ascx <%@ Control Language="C#" ClassName="RandomImage" %> <%@ Import Namespace="System.IO" %> <script runat="server">     void Page_Load()     {         string imageToDisplay = GetRandomImage();         imgRandom.ImageUrl = Path.Combine("~/Images", imageToDisplay);         lblRandom.Text = imageToDisplay;     }     private string GetRandomImage()     {         Random rnd = new Random();         string[] images = Directory.GetFiles(MapPath("~/Images"), "*.jpg");         string imageToDisplay = images[rnd.Next(images.Length)];         return Path.GetFileName(imageToDisplay);     } </script> <asp:Image     id="imgRandom"     Width="300px"     Runat="server" /> <br /> <asp:Label     id="lblRandom"     Runat="server" /> File: ShowRandomImage.aspx <%@ Page Language="C#" %> <%@ Register TagPrefix="user" TagName="RandomImage" 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 id="Head1" runat="server">     <title>Show RandomImage</title> </head> <body>     <form id="form1" runat="server">     <div>     <user:RandomImage         ID="RandomImage1"         Runat="server" />     </div>     </form> </body> </html>