Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Копия 6 Л серверные элементы управления.docx
Скачиваний:
9
Добавлен:
15.08.2019
Размер:
41.13 Кб
Скачать

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>

Table

Таблицы в HTML очень распространены, так как они позволяют позиционировать элементы на странице. Серверный элемент управления задается тегами <asp:Table ID="Table1" runat="server"></asp:Table>. Мощь ASP .NET проявляется при динамическом создании таблицы. Этот элемент управления в ASP .NET используется реже, так как элемент DataGrid позволяет получить те же результаты, имея к тому же привязку к данным.

Свойство Rows таблицы является контейнером строк — элементов TableRow, а они, в свою очередь, имеют свойство Cell — коллекцию элементов TableCell. Сам TableCell — контейнер любых элементов управления. Их нельзя вставлять в таблицу иначе, чем в один из элементов TableCell. Текст в ячейку можно записать через свойство Cell.Text или вставкой элемента Literal.

Строки таблицы могут быть также типа TableHeaderRow и TableFooterRow. Такие строки всегда отображаются на мобильных устройствах с небольшим экраном, даже если таблица большая и для ее просмотра нужна прокрутка. Ячейки таблицы могут быть типа TableHeaderCell — наследника TableCell. Текст в них отображается выделенным полужирным шрифтом и центрирован.

В ASP .NET 2.0 у элемента появилась возможность задавать заголовки с помощью свойства Caption. Местоположение заголовка определяется свойством CaptionAlign. При значении Bottom он будет находится под таблицей. При остальных значениях заголовок находится где ему положено — наверху, Left и Right просто выравнивают у левого или правого края.

Таблицы являются абсолютно необходимым элементом, используемым для отображения данных на странице, т. к. достаточно много информации бывает представлено в виде таблиц; кроме того, с помощью таблиц возможно осуществлять разметку страницы и позиционирование элементов.

Все таблицы можно условно разделить на две группы: предназначенные для создания и отображения простых динамических таблиц и списков и предназначенные для создания сложных таблиц и списков, содержащих другие элементы управления. Обычно сложные таблицы и списки бывают связаны с источниками данных.

Использование Panel

Элемент управления Panel используется для группирования элементов управления. При этом он выступает в качестве контейнера, способного вмещать в себя различные другие элементы управления, и тем самым дает возможность манипулировать ими как единым целым. Например, возможно скрытие или показ элемента Panel со всеми входящими в него элементами путем задания значения свойства Visible равным true или false.

При размещении внутри Panel элементов для ввода текста и кнопок можно определить кнопку, используемую по умолчанию. Это означает, что при вводе текста в элементы управления, размещенные внутри Panel, пользователь имеет возможность нажать кнопку Enter, что будет равносильно щелчку левой кнопки мыши по кнопке, указанной в свойстве DefaultButton элемента Panel. Это позволяет создавать более эффективные пользовательские формы для ввода данных.

Panel облегчает размещение динамически создаваемых элементов управления на форме. И, наконец, с помощью этого элемента управления становится возможным создание областей в рамках страницы, обладающих собственными свойствами поведения и внешнего вида. Это выражается в следующем:

  1. С помощью Panel можно создать область, содержащую полосы прокрутки. Для этого достаточно установить соответствующее значение свойства ScrollBars, а также установить необходимые значения свойств Height и Width.

  2. С помощью Panel можно создать область группы с заголовком. Для этого необходимо ввести в свойство GroupingText строку заголовка группы. Пример изображения группы, получаемой в этом случае, приведен на рис. 5.35.

Рис. 5.35.  Пример изображения группы элементов

Следует отметить, что при установке свойства GroupingText становится невозможным использование полос прокрутки.

  1. С помощью Panel можно создать область страницы, имеющую отдельно заданные свойства, такие как цвет фона, рамка и т. д.

В следующем примере создается простейшая форма авторизации пользователя на сайте. При вводе имени пользователя и пароля, а также щелчке по кнопке "Войти" (либо нажатии Enter), введенные данные сравниваются с хранящимися в коде программы. В случае, если данные совпадают, панель, содержащая элементы управления, скрывается, а вместо нее выводится приветственное сообщение. Исходный код страницы выглядит следующим образом:

<body>

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

<div>

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

<br />

<br />

<asp:panel ID="Panel1" runat="server" height="118px"

width="215px" DefaultButton="btn_Enter">

<asp:Label ID="Label2" runat="server" Text=

"Имя "></asp:Label>

    

<asp:TextBox ID="tb_Name" runat="server"></asp:TextBox><br />

<br />

<asp:Label ID="Label3" runat="server" Text="Пароль">

</asp:Label>

<asp:TextBox ID="tb_Password" runat="server" TextMode=

"Password"></asp:TextBox><br />

<br />

<asp:Button ID="btn_Enter" runat="server" OnClick=

"btn_Enter_Click" Text="Войти" /></asp:panel>  

</div>

</form>

</body>

Исходный код процедуры нажатия на кнопку, осуществляющий проверку введенных данных, представлен ниже.

protected void btn_Enter_Click(object sender, EventArgs e)

{

if (tb_Name.Text == "user" && tb_Password.Text == "12345")

{

Panel1.Visible = false;

Label1.Text = tb_Name.Text + " успешно вошел в систему.";

}

else

{

Label1.Text = "Неверное имя или пароль";

Label1.ForeColor = System.Drawing.Color.Red;

tb_Name.Text = "";

}

}