Instructor: Ed Weihrauch [home]
Consider this Login as a Web control:

Note the table style table attribute
which provides the stylistic effect:
style="background-color:
beige; font: 10pt verdana;border-width:1;border-style:solid;border-color:black;"
<%-- list6-02.aspx --%>
<%@ Page Language="VB" %>
<script runat="server">
' dim Username as string
' dim Password as string
' dim BackColor as string
sub Submit(obj as object, e as eventargs)
Label1.Text = "Username: <b>" & User.Text & _
"</b><br>" & "Password: <b>" & Pass.Text & "</b><p>"
end sub
</script>
<html><body>
<h2>Login as a Web Control</h2>
<hr size="4" color="red" width="50%" align="left">
<form runat="server">
<table
style="background-color: beige;
font: 10pt verdana;border-width:1;border-style:solid; border-color:black;"
cellspacing=15>
<tr>
<td><b>Login: </b></td>
<td><ASP:TextBox id="User" runat="server"/></td>
</tr>
<tr>
<td><b>Password: </b></td>
<td><ASP:TextBox id="Pass" TextMode="Password" runat="server"/></td>
</tr>
<tr>
<td></td>
<td><ASP:Button Text="Submit" runat="server" OnClick="Submit" /></td>
</tr>
</table>
<p>
<ASP:Label id="Label1" runat="server"/>
</form>
</body></html>
|
<%@ Register TagPrefix="TYASPNET" TagName="LoginForm" src="LoginForm.ascx" %>

<%-- list6-04v2.aspx --%>
<%@ Page Language="VB" %>
<%@ Register TagPrefix="TYASPNET" TagName="LoginForm" src="LoginForm.ascx" %>
<script runat="server">
sub Page_Load(obj as object, e as eventargs)
lblMessage.Text = "<b>Properties of the user control: </b>" & _
"<br>id: " & LoginForm1.id & "<br>" & _
"BackColor: " & LoginForm1.BackColor & "<br>" & _
"Username: " & LoginForm1.Username & "<br>" & _
"Password: " & LoginForm1.Password
end sub
</script>
<html><body>
<h2>User Controls - with Property Statements</h2>
<hr size="4" color="red" width="50%" align="left">
<form runat="server">
<TYASPNET:LoginForm id="LoginForm1" runat="server"
Password="WrongPassword"
Username="WrongName"
BackColor="Beige" />
</form>
<p>
<asp:Label id="lblMessage" runat="server" />
</body></html>
|
<%-- LoginForm.ascx --%>
<script language="VB" runat="server">
public BackColor as String = "White"
public property UserName as string
Get
UserName = User.Text
End Get
Set
User.Text = value
End Set
end property
public property Password as string
Get
Password = Pass.Text
End Get
Set
Pass.Text = value
End Set
end property
public sub Submit(obj as object, e as eventargs)
lblMessage.Text = "<b>Produced from within User Control</b><br>"
lblMessage.Text += "Username: <b>" & User.Text & _
"</b><br>" & "Password: <b>" & Pass.Text & "</b><p>"
end sub
</script>
<table
style="background-color:<%=BackColor%>; font: 10pt verdana;border-width:1
border-style:solid;border-color:black;"
cellspacing=15>
<tr>
<td><b>Login: </b></td>
<td><ASP:TextBox id="User" runat="server"/></td>
</tr>
<tr>
<td><b>Password: </b></td>
<td><ASP:TextBox id="Pass" TextMode="Password" runat="server"/></td>
</tr>
<tr>
<td></td>
<td><ASP:Button Text="Submit" runat="server" OnClick="Submit" /></td>
</tr>
</table>
<p>
<ASP:Label id="lblMessage" runat="server"/>
|
The property statements are required,
since the output produced without them is not correct.
public variables are not
the same as public properties. You can assign and retrieve values but
properties of the user control (created with the property statement) allow you
to perform actions each time the value is set or accessed.
The source src="list6-03.ascx" below declares only public variables (not properties)

list6-04.aspx - wrong output:
<%-- list6-04.aspx --%>
<%@ Page Language="VB" %>
<%@ Register TagPrefix="TYASPNET" TagName="LoginForm" src="list6-03.ascx" %>
<script runat="server">
sub Page_Load(sender as Object, e as EventAgs)
lblMessage.Text = "<b>Properties of the user control: </b>" & _
"<br>id: " & LoginForm1.id & "<br>" & _
"BackColor: " & LoginForm1.BackColor & "<br>" & _
"Username: " & LoginForm1.Username & "<br>" & _
"Password: " & LoginForm1.Password
end sub
</script>
<html><body>
<h2>User Controls - w/o Property Statements</h2>
<hr size="4" color="red" width="50%" align="left">
<form runat="server">
<TYASPNET:LoginForm id="LoginForm1" runat="server"
Password="WrongPassword"
Username="WrongName"
BackColor="Beige" />
</form> <p>
<asp:Label id="lblMessage" runat="server" />
</body></html>
|
<%-- list6-03.ascx --%>
<%@ Control Language="VB" %>
<script runat="server">
public BackColor as String = "White"
public UserName as String
public Password as String
public sub Submit(obj as object, e as eventargs)
Label1.Text = "<b>Produced from within User Control</b><br>"
Label1.Text += "Username: <b>" & User.Text & "</b><br>" & _
"Password: <b>" & Pass.Text & "</b><p>"
end sub
</script>
<table style="background-color:pink;
font: 10pt verdana; border-width:1;
border-style:solid; border-color:black;"
cellspacing=15>
<tr>
<td><b>Login: </b></td>
<td><ASP:TextBox id="User" runat="server"/></td>
</tr>
<tr>
<td><b>Password: </b></td>
<td><ASP:TextBox id="Pass" TextMode="Password"
runat="server"/></td>
</tr>
<tr>
<td></td>
<td><ASP:Button Text="Submit" runat="server"
OnClick="Submit" /></td>
</tr>
</table>
<p>
<ASP:Label id="Label1" runat="server"/>
|
We will see User Controls in the Case Study in a following section.