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

Преподаватель Чмиль Е.В. - РЗКСА 8

Лекция №6 Тема: «Серверные элементы управления. Часть 1»

Button

Button — это командная кнопка, нажатие на которую часто приводит к отправке данных на сервер. Можно создавать кнопки двух типов: для передачи данных формы (submit button) или командные кнопки для выполнения различных функций, связанных с данной кнопкой. Если на форме есть несколько кнопок, свойство CommandName позволяет узнать, какая именно кнопка была нажата.

ASP .NET поддерживает 3 вида событий.

  • События, которые происходят в браузере клиента и обрабатываются кодом на Javascript.

  • События загрузки страницы.

  • События элементов управления.

Например, чтобы обработать щелчок на кнопке, мы переопределяем событие Click.

protected void Button1_Click(object sender, EventArgs e)

{

}

События можно определить через вкладку событий в окне свойств. Второй аргумент всех обработчиков событий имеет тип EventArgs или какой-либо унаследованный от него.

Например, мы хотим создать форму для заполнения резюме. Автор может иметь заранее неизвестное нам количество предыдущих мест работы. Добавим на форму кнопку, при нажатии на которую в форму добавляется один элемент ввода текста:

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

<script runat="server">

static int num=0;

static TextBox[] tb=new TextBox[10];

void AddExperience(Object sender, EventArgs e)

{

if (num < 10)

// Чтобы не возникало ошибки обращения к несуществующему элементу массива

{

TextBox newBox = new TextBox();

newBox.ID = "box" + num;

tb[num] = newBox;

num++;

}

for (int i=0; i<10; i++)

// Добавление на форму контролов из

массива.

{

if (tb[i] != null)

{

places.Controls.Add(tb[i]);

Label lb=new Label();

lb.Text="<br><br>";

places.Controls.Add(lb);

}

else break;

}}

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >

<head>

</head>

<body>

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

<asp:Label ID="Label1" runat="server" text="Введите Ваше

последнее место работы" />

<asp:Panel id="places" runat="server">

<asp:TextBox id="first" runat="server" />

<br />

<br />

</asp:Panel>

<asp:Button id="Add" Text="Еще" OnCommand="AddExperience"

CommandName="Add" runat="server" />

</form>

</body>

</html>

Здесь мы имеем массив из 10 элементов типа TextBox. Новый элемент создается в момент нажатия на кнопку "Еще". Можно добавить до 10 новых элементов. Как и раньше, они размещаются в контейнере, это нужно, чтобы они выводились до кнопки.

При помощи свойства OnClientClick можно задать клиентский сценарий на JavaScript. Его значением может быть встроенная функция языка JavaScript, или функция, описанная в теле страницы. Клиентский код выполняется до серверного кода, заданного в свойстве OnClick.

Label

Этот элемент управления позволяет выводить отформатированный текст. Всеми свойствами этого объекта можно управлять из вашей программы ASP .NET.

Пример описания элемента Label:

<asp:Label id="ShopNews" runat="server" Font-Size =20

ForeColor="red"

BackColor ="lightgray" BorderWidth=4 BorderStyle=groove Height=50

width=500>

Новости торговой площадки </asp:Label>

Префикс asp: означает, что данный элемент стандартный.

Так как Text — это такой же атрибут, как и другие, мы можем написать иначе:

<asp:Label id="ShopNews" runat="server" Font-Size =20

ForeColor="red"

BackColor ="lightgray" BorderWidth=4 BorderStyle=groove Height=50

width=500

Text= "Новости торговой площадки" />

Рассмотрим небольшой пример, который переопределяет текст, отображаемый при помощи элемента Label, на текст, набранный пользователем в элемент TextBox. Для этого реализуем следующую страницу:

<body>

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

<div>

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

<br />

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

<br />

<asp:Button ID="Button1" runat="server" Text="Button" OnClick="OnClick"/>

</div>

</form>

</body>

Как видно, изначально компонент Label1 отображает текст Label. Реализуем обработчик события OnClick кнопки так, чтобы она отображала в Label набранный пользователем текст:

protected void OnClick(object sender, EventArgs e)

{

Label1.Text = TextBox1.Text;

} (ПРИМЕНИТЬ НА ПРАКТИКЕ №3)