Introduction
Continuous from
Part - 2, in previous article we have seen that how User Controls are
registering in Web.config file to use entirely in website. Now in this article
we will discuss how to expose the properties from a User Control. We have
noticed that the RandomImage User control always displays an image from the
Images folder. It would be nice if we could specify the name of the folder that
contains the images so that we could use different folder paths in different
applications. We can do this by exposing a property from the RandomImage User
control. The modified RandomImage control is now named as PropertyRandomImage,
exposes a property named ImageFolderPath.
PropertyRandomImage.ascx File Code
<%@ Control Language="VB" ClassName="PropertyRandomImage" %>
<%@ Import Namespace="System.IO" %>
<script runat="server">
Private
_imageFolderPath As
String = "~/images1"
Public Property ImageFolderPath()
As String
Get
Return _imageFolderPath
End Get
Set(ByVal
Value As String)
_imageFolderPath = value
End Set
End
Property
Private Sub Page_Load()
Dim imageToDisplay
As String =
GetRandomImage()
imgRandom.ImageUrl = Path.Combine(_imageFolderPath,
imageToDisplay)
lblRandom.Text = imageToDisplay
End Sub
Private Function GetRandomImage()
As String
Dim rnd
As New Random()
Dim images()
As String =
Directory.GetFiles(MapPath("~/images1"),
"*.JPG")
Dim imageToDisplay
As String =
images(rnd.Next(images.Length))
Return Path.GetFileName(imageToDisplay)
End Function
</script>
<asp:Image
id="imgRandom"
Width="300px"
Runat="server" />
<br />
<asp:Label
id="lblRandom"
Runat="server" />
Default.aspx File Code
<%@ Page Language="VB" CodeFile="Default.aspx.vb" Inherits="_Default"%>
<%@ Register TagPrefix="user" TagName="PropertyRandomImage" Src="~/PropertyRandomImage.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<user:PropertyRandomImage
ID="PropertyRandomImage1"
ImageFolderPath="~/images1"
Runat="server" />
</div>
</form>
</body>
</html>
Default2.aspx File Code
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default2.aspx.vb" Inherits="Default2" %>
<%@ Register TagPrefix="user" TagName="PropertyRandomImage" Src="~/PropertyRandomImage.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected
Sub Page_Load(ByVal
sender As Object,
ByVal e As EventArgs)
PropertyRandomImage1.ImageFolderPath =
"~/images2"
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<user:PropertyRandomImage
ID="PropertyRandomImage1"
Runat="server" />
</div>
</form>
</body>
</html>
Note: Continue in next part.
HAVE A GREAT CODING!