ASP.NET Architecture, Part 2 - Server Control Types and Web Controls
(Page 6 of 7 )
Server Control Types
Server controls can be placed on a web forms page. You can add an HTML control to the page by referencing the System.Web.HTMLControls namespace. Here is how you would add your HTML control to the page:
<%@ Page Language = "vb" %>
<html>
<head>
</head>
<body>
<form runat ="server">
<input id ="ButtonName" type="submit" runat = "server"/>
</form>
</body>
</html>
By adding the runat = “server”, you can access the control programmatically on the server side. As you will recall, the server-side <form> causes the page to post back to the server when the user clicks the Submit button.
Web Controls
The syntax for adding a web control is slightly different from syntax for an HTML control. Instead of defining your own tag prefix, use the asp prefix. Here is how you add a web control to the page:
<asp: TextBox id = "myTextBox" runat = "server" />
Let’s add a TextBox control and two web labels to a server-side form. Write the following code to the ServerSideControl.aspx page beginning with the <html> tag:
<html>
<head>
<script runat="Server">
Sub Page_Load(Sender As Object, E As EventArgs)
If Is PostBack Then
GreetingsLabel.Text = "Greetings, " & _
Server.HTMLEncode(MyNameTextBox.Text)
End If
End Sub
</script>
</head>
<body>
<form runat="Server">
<asp:Label id = "MyNameLabel" runat="server">Name: </asp:Label>
<asp:TextBox id="MyNameTextBox" runat="Server"/>
<input id="MyNameButton" type="submit" runat="server"/>
</form>
<asp:Label id = "GreetingLabel" runat = "server"/>
</body>
</html>
If you run this page, you can enter text in the TextBox control and submit the page. After the post back occurs, provide the proper URL and view the page.
NOTE: Assuming you set the AutoEventWireup to true, if you manually write your code in a text editor such as Notepad, youmust set the AutoEventWireup attribute to true. If Visual Studio .Net generates the page, by default this attribute is set to false. This indicates that all event handlers must be manually wired to the events they will handle. Handling Events in the Server Control
An event handler was provided for the Page_Load event in the previous example. The event handler checks the IsPostBack page property to determine whether a post back occurs because the user has interacted with the Submit button. If this evaluation is true, set the Text property for the label to the appropriate text. In addition, employ the Server.HtmlEncode methodology to encode your text.
Note that when you add an event handler for the Load stage, you should check the IsPostBack page-level property. Handling Control events is slightly different. In this scenario, apply the controlname_eventname instead. Here is an example:
Sub NameTextBox_TextChanged
(Sender As Object, E As EventArgs)GreetingLabel.Text &=" your name has changed"
End Sub
Next, add the following attribute to your NameTextBox server control tag:
<asp:TextBox id ="NameTextBox" onTextChanged =
"NameTextBox_TextChanged"
runat="server"/>
This has been part two of ASP.NET Architecture (see part 1 here), chapter six of .NET & J2EE Interoperability, by Dwight Peltzer (McGraw-Hill/Osborne, ISBN 0-07-223054-1, 2004).
Buy this book now. |
Next: Error Handling and Security >>
More ASP.NET Articles
More By McGraw-Hill/Osborne