ASP.NET Basics (Part 7): Command and Control - A Matter of Control
(Page 6 of 7 )
I have repeatedly used the ASP.NET "label" control to display the output of my scripts in previous examples. However, this is not the only control available in ASP.NET. In fact, each form construct demonstrated in previous examples has a corresponding server control.
Take for example, the "textbox" control, which is similar to the "text" form control. It's pretty easy to use this in a script - as the following example demonstrates, by rewriting the very first example in this article:
<script language="c#" runat="server">
void Page_Load()
{
if(name.Text != "")
{
// print the details
Response.Write("Welcome to the Inner Sanctum, " + name.Text + "!");
}
}
</script>
<html>
<head>
<basefont face="Arial">
</head>
<body>
<center>
<form runat="server">
<table cellspacing="5" cellpadding="5" border="0">
<tr>
<td>
<font size="1">Who dares to disturb the Council?</font>
</td>
<td align="left">
<asp:textbox id="name" runat="server" />
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="submit" value="Enter">
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
So, what's new here? First up, the "form" element:
<form runat="server">
...
</form>
The "runat" attribute, when set to a value of "server" instructs ASP.NET to process the form on the server, and makes the server responsible for maintaining the state of the page. Why is this useful? You'll see shortly.
Next, the "textbox" control. Nothing too complicated here, but note that the control is assigned a name - oddly enough, called "name" in this example - via the "id" attribute:
<asp:textbox id="name" runat="server" />
bbr>The final piece of the puzzle is the code that takes care of displaying the welcome message once the form is submitted:
void Page_Load
()
{
if(name.Text != "")
{
// print the details
Response.Write("Welcome to the Inner Sanctum, " + name.Text + "!");
}
}
Take a closer look at the "if" condition - it looks for a text value in the "textbox" server control called "name", and then displays a message incorporating that value. The data entered by the user is accessed via the "Text" property of the server control.
So what was so different about this example, as compared to the earlier ones? For one, I didn't specify an ACTION for the form. I didn't need to. Instead, the moment I set the "runat" attribute to "server", the server took over and automatically submitted the form back to the same script for processing.
One final note: once the form is submitted, you will notice that the URL contains a new variable, "__VIEWSTATE", which is passed along. This is a built-in variable introduced by ASP.NET to maintain the state of the page.
You'll have noticed that in all the earlier examples, I have used two pages: a single HTML page containing the form, and a separate C# script which processes the form input and generates appropriate output. However, the method above provides an elegant method to combine those two pages into one using the "runat=server" feature of ASP.NET.
Next: Alien Invasion >>
More ASP.NET Articles
More By Harish Kamath (c) Melonfire