Preferred Language:
Listing 7.5 - PropertyRandomImage.ascx
Illustrates how to expose a property from a user control and set the property both declaratively and programmatically.
<%@ Control Language="C#" ClassName="PropertyRandomImage" %>
<%@ Import Namespace="System.IO" %>
<script runat="server">
private string _imageFolderPath = "Images";
public string ImageFolderPath
{
get { return _imageFolderPath; }
set { _imageFolderPath = value; }
}
void Page_Load()
{
string imageToDisplay = GetRandomImage();
imgRandom.ImageUrl = Path.Combine(_imageFolderPath, 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" />
The following page sets the property exposed by the user control declaratively.
<%@ Page Language="C#" %>
<%@ Register TagPrefix="user" TagName="PropertyRandomImage" Src="PropertyRandomImage.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 Declarative</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<user:PropertyRandomImage
ID="PropertyRandomImage1"
ImageFolderPath="Images2"
Runat="server" />
</div>
</form>
</body>
</html>
The following page sets the property exposed by the user control programmatically.
<%@ Page Language="C#" %>
<%@ Register TagPrefix="user" TagName="PropertyRandomImage" Src="PropertyRandomImage.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
PropertyRandomImage1.ImageFolderPath = "Images2";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Show Programmatic</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<user:PropertyRandomImage
ID="PropertyRandomImage1"
Runat="server" />
</div>
</form>
</body>
</html>
ASP.NET 3.5 Unleashed
- Containing almost 2,000 pages of code samples and in-depth explanation of the
ASP.NET 3.5 Framework, ASP.NET 3.5 Unleashed is the most comprehensive book
written on the ASP.NET 3.5 Framework.
ASP.NET 3.5 Unleashed is now available in your local bookstore and online (Published January 7, 2008).
All of the code samples from this book are hosted "live" at this website.
Click here
to view the table of contents and code samples.