CIT235 Web Database Systems

Instructor:  Ed Weihrauch  [home]

Creating User Controls 

Consider this Login as a Web control:

list6-02.aspx

<%-- 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>

User Controls
 

In addition to the built-in server controls provided by ASP.NET, you can easily define your own controls which lets you package and reuse any UI functionality that you want and embed it in an ASP.NET page.

Our example

list6-04v2.aspx

<%-- 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"/>

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.