Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции OOP c#.doc
Скачиваний:
44
Добавлен:
22.09.2019
Размер:
3.38 Mб
Скачать

5.8. Списковые элементы управления

Списковые элементы управления обеспечивают различные способы представления списков и таблиц на aspx-странице. Название и назначение списковых элементов приведено в таблице 45.

Таблица 45

Списковые элементы управления

Элемент

управления

Описание

DropDownList

Создает на странице элемент <select> с атрибутом size="1", то есть раскрывающийся список с одной видимой строкой. Этот список можно заполнить при помощи элементов управления ListItem (тег <asp:ListItem>) или посредством связывания данных

ListBox

Создает элемент <select> с атрибутом size="n", чтобы построить обычное поле списка с единичным или множественным выбором и более чем одной видимой строкой. Этот список можно заполнить при помощи элементов управления ListItem или посредством связывания данных

CheckBoxList

Создает HTML-элемент <table> или простой список, содержащий HTML-флажки. Список можно заполнить при помощи элементов ListItem или посредством связывания данных

RadioButtonList

Создает HTML-элемент <table> или простой список, содержащий HTML-переключатели. Список можно заполнить при помощи элементов ListItem или посредством связывания данных

ListItem

Это класс для представления отдельного элемента некоторых списков

Repeater

Повторяет содержимое, указанное один раз, для каждого исходного элемента источника данных, связанного с элементом управления

DataList

Создает HTML-элемент <table>, содержащий строки для каждого элемента источника данных, связанного с элементом управления. Настраиваются шаблоны, которые определяют содержимое и вид каждой строки

DataGrid

Создает HTML-элемент <table>, используемый совместно со связыванием данных на стороне сервера и имеющий встроенные средства поддержки выборки, сортировки и редактирования строк

Элементы DropDownList, ListBox, CheckBoxList и RadioButtonList имеют общего предка – класс ListControl. Полезные свойства данного класса описываются в таблице 46.

Таблица 46

Свойства класса ListControl

Имя свойства

Описание

AutoPostBack

Булево значение; показывает, будет ли страница автоматически отправляться на сервер при изменении пользователем выбора в списке

DataMember

Имя таблицы в DataSource, которая является источником данных для значений списка при заполнении списка путем связывания данных. Свойство используется, если DataSource содержит более одной таблицы (например, если DataSource содержит DataSet)

DataSource

Источник данных для значений списка при заполнении списка путем связывания данных

DataTextField

Имя поля в DataSource, содержимое которого будет отображаемым текстом элементов списка

DataTextFormatString

Строка форматирования для значений из DataTextField (например, {0:C} для денежных сумм)

DataValueField

Имя поля в DataSource, содержимое которого будет значением элементов списка (свойство Value объекта ListItem)

Items

Коллекция элементов ListItem, содержащихся в списке

SelectedIndex

Индекс первого выбранного элемента в списке1

SelectedItem

Ссылка на первый выбранный элемент ListItem

SelectedValue

Значение первого выбранного элемента ListItem. Если у элемента задано свойство Value, то возвращается именно оно. Иначе возвращается значение свойства ListItem.Text

Кроме описанных свойств класс ListControl предоставляет событие OnSelectedIndexChanged(). Оно возникает на сервере, когда выбор в списке изменяется и страница пересылается на сервер.

Каждый списковый элемент добавляет к своему базовому классу некоторые специфичные свойства и методы. Они приведены в таблице 472.

Таблица 47

Специфичные свойства списковых элементов управления

Элемент управления

или объект

Свойства и методы

DropDownList

ListBox

Rows

CheckBoxList

CellPadding, CellSpacing, RepeatColumns, RepeatDirection, RepeatLayout, TextAlign

RadioButtonList

CellPadding, CellSpacing, RepeatColumns, RepeatDirection, RepeatLayout, TextAlign

ListItem

Attributes, Selected, Text, Value, метод FromString()

Следующий пример показывает использование элемента управления CheckBoxList. Для элемента управления при помощи редактора свойств были определены значения Text и Value отдельных строк. Настроены свойства ID, CellPadding, CellSpacing, RepeatColumns, RepeatDirection. При нажатии на кнопку Send страница обрабатывается на сервере и выводится информация о выбранных пользователем значениях.

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

<script runat="server">

protected void Send_Click(object sender, EventArgs e) {

if(CBL1.SelectedIndex != -1) {

Label1.Text = "";

foreach(ListItem LI in CBL1.Items)

if(LI.Selected)

Label1.Text += LI.Text + " " + LI.Value + " ";

}

else Label1.Text = "No Item Selected";

}

</script>

<html>

<body>

<form id="form1" runat="server">

<asp:CheckBoxList ID="CBL1" runat="server" CellPadding="2"

CellSpacing="5" RepeatColumns="2"

RepeatDirection="Horizontal">

<asp:ListItem Value="1">Monday</asp:ListItem>

<asp:ListItem Value="2">Tuesday</asp:ListItem>

<asp:ListItem Value="3">Wednesday</asp:ListItem>

<asp:ListItem Value="4">Thursday</asp:ListItem>

<asp:ListItem Value="5">Friday</asp:ListItem>

<asp:ListItem Value="6">Saturday</asp:ListItem>

<asp:ListItem Value="7">Sunday</asp:ListItem>

</asp:CheckBoxList>

<asp:Button ID="Send" runat="server" Text="Send"

OnClick="Send_Click" /> <br />

<asp:Label ID="Label1" runat="server"></asp:Label>

</form>

</body>

</html>

Вид страницы в браузере после выбора нескольких элементов и нажатия кнопки Send показан на рисунке 20.

Рис. 20. Страница с элементом управления CheckBoxList