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!