ASP.NET Basics (Part 7): Command and Control - The Taste Test
(Page 5 of 7 )
Arrays come in particularly handy when dealing with form elements like checkboxes and multiple select list boxes. Take a look at the following form, which includes a bunch of checkboxes:
<html>
<head>
<basefont face="Arial">
</head>
<body>
Pick your favourite pizza toppings, and we'll match them to television shows:
<form action="pizza.aspx" method="POST">
<input type="checkbox" name="shows" value="Ally McBeal">nuts
<input type="checkbox" name="shows" value="Buffy The Vampire Slayer">garlic
<input type="checkbox" name="shows" value="Sex And The City">oysters
<input type="checkbox" name="shows" value="Joe Millionaire">caviar
<input type="checkbox" name="shows" value="Friends">cheese
<input type="checkbox" name="shows" value="The West Wing">pepperoni
<input type="submit" name="submit" value="Select"> </form>
</body>
</html>
Now, once the form is submitted, the ASP.NET script "pizza.aspx" is responsible for processing the states of the various checkboxes. Data from the checkboxes is assigned to an array, and then this array is used to recreate a list of the selected items. Take a look.
<script language="c#" runat="server">
void Page_Load()
{
// pizza.aspx - process list of selected toppings
// split the comma-separated value into an Array
string[] Shows = Request.Form["shows"].Split(',');
output.Text = "<ul>";
// print by iterating through array
for(int counter = 0; counter < Shows.Length; counter++)
{
output.Text = output.Text + "<li>" + Shows[counter];
}
output.Text = output.Text + "</ul>";
}
</script>
<html>
<head>
<basefont face="Arial">
</head>
<body>
<center><asp:label id="output" runat="server" /></center> </body> </html>
As you can see, the first order of business is to create an array to hold the checkbox data, in this case, the array "Shows." Then, the Request object is used to obtain the values of the selected items (in the form of a comma-separated list of values) and these values are then assigned to the "Shows" array using the "Split" method of the string object. A "for" loop is then used to create a list of the selected items.
This technique can also be used with multiple-select list boxes. Here's the same example, rewritten to use a list box instead of a series of checkboxes.
<html>
<head>
<basefont face="Arial">
</head>
<body>
Pick your favourite shows:
<form action="pizza.aspx" method="POST">
<select name="shows" multiple>
<option value="Ally McBeal">nuts</option>
<option value="Buffy The Vampire Slayer">garlic</option>
<option value="Sex And The City">oysters</option>
<option value="Joe Millionaire">caviar</option>
<option value="Friends">cheese</option>
<option value="The West Wing">pepperoni</option>
</select>
<input type="submit" name="submit" value="Select">
</form>
</body>
</html>
Obviously, the server-side script "pizza.aspx" requires no changes at all.
Next: A Matter of Control >>
More ASP.NET Articles
More By Harish Kamath (c) Melonfire