Основы ASP.NET 2.0

ListBox


Если у тега <select> указать атрибут SIZE, больший 1 (значение по умолчанию), то получим простой невыпадающий список. Ему соответствует <asp:ListBox>.

Элемент управления позволяет выбрать несколько пунктов списка одновременно. Для этого надо установить его свойство SelectionMode:

SelectionMode="multiple"

Свойство Rows устанавливает количество элементов, которые видны в листе. Если элементов больше, то появляется полоса прокрутки.

Свойство Items возвращает коллекцию элементов ListItem, которые находятся в списке. Оно позволяет определить выбранные пункты.

Представьте, что мы разрабатываем сайт туристического агентства. Посетителю предоставляется возможность выбрать несколько городов для своего маршрута из имеющегося списка. Смотрим код:

<%@ Page Language="C#" %>

<script runat="server">

void Page_Load() { string msgCitiesList = ""; if (Page.IsPostBack) foreach (ListItem it in cities.Items) if (it.Selected) { msgCitiesList = msgCitiesList + it.Text + "<br />"; }

if (msgCitiesList != "") { Message.Text = "Вы выбрали следующие города: <br />" + msgCitiesList; } else { Message.Text = ""; } }

</script>

<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Пример ListBox</title> </head> <body> Какие города вы хотите включить в свой маршрут?<br /> <form id="Form1" runat="server"> <asp:ListBox ID="cities" runat="server" SelectionMode="multiple"> <asp:ListItem>Лондон</asp:ListItem> <asp:ListItem>Мадрид</asp:ListItem> <asp:ListItem>Париж</asp:ListItem> <asp:ListItem>Рига</asp:ListItem> </asp:ListBox><br /> <input type="Submit"> <p> <asp:Label ID="Message" runat="server" /><br /> </form> </body> </html>

Событие SelectedIndexChanged имеется и тут, как и у всех классов-наследников от абстрактного класса ListControl.



Содержание раздела