Web Forms - Working with ASP.NET server controls

Using List Boxes

As when working with Windows forms, you use list boxes to create a control that allows single or multiple selection of items from a list. For example, you can see a single-selection list box in Figure 14.3 in the ListBox example in the code for this book. When the user clicks an item in the list box, that item appears in the text box at the bottom of the application, as you see in the figure.


Figure 14.3

The ListBox example.

In HTML, list boxes are supported with the HTML <select> control, and the items in the list box are supported with HTML <option> elements. For example, here's the HTML that creates the single-selection list box you see in Figure 14.3:

<select name="ListBox1" size="4" onchange="__doPostBack('ListBox1','')"
language="javascript" id="ListBox1"
style="height:128px;width:145px;Z-INDEX: 102;
LEFT: 156px; POSITION: absolute; TOP: 72px">
  <option value="Item 0">Item 0</option>
  <option value="Item 1">Item 1</option>
  <option value="Item 2">Item 2</option>
  <option value="Item 3">Item 3</option>
  <option value="Item 4">Item 4</option>
  <option value="Item 5">Item 5</option>
  <option value="Item 6">Item 6</option>
  <option value="Item 7">Item 7</option>
  <option value="Item 8">Item 8</option>
  <option value="Item 9">Item 9</option>
</select>

Web server list boxes are supported by the System.Web.UI.WebControls.ListBox class; here's the hierarchy for that class (note that this class inherits the System.Web.UI.WebControls.ListControl class, as check box lists and radio button lists do):

System.Object
  System.Web.UI.Control
    System.Web.UI.WebControls.WebControl
      System.Web.UI.WebControls.ListControl
        System.Web.UI.WebControls.ListBox

You can find the significant public properties of System.Web.UI.WebControls.ListBox objects in Table 14.4. (This class has no non-inherited methods or events.) Note that as with other Web server controls, this table does not list the significant properties, methods, and events this class inherits from the Control and WebControl classes—you can find them in Tables 12.1 to 12.5. Note that this class also inherits the ListControl class, and you can find the significant public properties of the ListControl objects in Table 13.4, and their significant public event in Table 13.5. (The ListControl class has no non-inherited methods.)

Table 14.4 Significant Public Properties of ListBox Objects

Property Means
Items Returns the collection of items (as ListItem objects) in the control.
Rows Returns or sets the number of rows in the list box.
SelectedIndex Returns or sets the selected item's index.
SelectedItem Returns the ListItem object corresponding to the selected item.
SelectionMode Returns or sets the list box's selection mode, single or multiple.
SelectedValue Returns the value of the Value property of the selected item.
ToolTip Returns or sets the tool tip text for this list box.

The major event in Web server list boxes is the SelectedIndexChanged event, which occurs when the selected item in the list box is changed. Note also, as you saw in Day 11, that if you want to handle a list box's events immediately, you must set its AutoPostBack property to True.

Here's an overview of list boxes in code. You use the Rows property to specify the height of the control. To enable multiple item selection, you set the SelectionMode property to ListSelectionMode.Multiple. You can determine the selected item in a single-selection list box using the SelectedItem and SelectedIndex properties. The SelectedItem property returns the selected item as a ListItem object, which supports Text, Value, and Selected properties. The ListControl class's Items property holds a collection of ListItem objects that you can use to access any item in a list box. (You saw the ListItem class in Day 13, "Web Forms: Working with Check Boxes, Radio Buttons, Tables, and Panels"; you can find the significant public properties of ListItem objects in Table 13.6.)

You might also like...

Comments

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves” - Alan Kay