- •Федеральное агентство по образованию
- •Таганрогский государственный радиотехнический университет
- •Программирование в Интернет
- •Лекция 1. Введение в Web-программирование
- •Принцип работы Web-приложений
- •Обзор известных средств программирования для Internet
- •Первое решение: cgi
- •Преимущества cgi
- •Недостатки cgi
- •Второе решение: isapi-интерфейс
- •Преимущества isapi
- •Недостатки isapi
- •Третье решение: asp
- •Преимущества asp
- •Недостатки asp
- •Лекция 2. Введение в php
- •Что такое рнр?
- •Архитектура рнр
- •Первая программа на php
- •Взаимодействие html и php
- •Лекция 3. Типы данных php
- •Комментарии
- •Логические переменные
- •Синтаксис логических переменных
- •Приведение значений к логическому типу
- •Целые числа
- •Синтаксис целочисленных переменных
- •Целочисленное переполнение
- •Приведение к целочисленному типу
- •Вещественные числа
- •Константы
- •Преобразование строк
- •Лекция 4. Переменные
- •Изменение типа переменной
- •Преобразование типа переменной
- •Операторы и выражения
- •Оператор присваивания
- •Арифметические операторы
- •Оператор конкатенации
- •Дополнительные операторы присваивания
- •Операторы сравнения
- •Логические операторы
- •Увеличение или уменьшение целой переменной
- •Порядок вычисления операторов
- •Динамические переменные
- •Ссылки на переменные
- •Лекция 5. Инструкция if
- •Блок else инструкции if
- •Блок elseif инструкции if
- •Инструкция switch
- •Оператор ?
- •Цикл while
- •Цикл do... While
- •Цикл for
- •Прерывание циклов инструкцией break
- •Пропуск итераций с помощью инструкции continue
- •Лекция 6. Функции
- •Аргументы функции
- •Аргументы по умолчанию
- •Область видимости переменных
- •Лекция 7. Краткий обзор .Net Framework
- •Промежуточный язык Microsoft Intermediate Language
- •Компиляция “Just In Time”
- •Управляемый код и данные
- •Лекция 8. Создание приложений Web Forms Файлы проекта Web Forms
- •Файлы Web-приложения
- •Обработка событий События жизненного цикла Web-приложения
- •Сохранение данных Web-формы
- •Visual Basic .Net
- •Visual c#
- •События Application и Session
- •Visual Basic .Net
- •Visual c#
- •События Web-формы
- •Visual Basic .Net
- •Visual c#
- •События серверных элементов управления
- •Visual Baste .Net
- •Visual c#
- •Лекция 9. Работа с Web-объектами Введение в пространство имен
- •Пространства имен в Web-приложениях Обзор пространства имен Web
- •Visual Basic .Net
- •Visual c#
- •Использование объекта Application
- •Visual Baste .Net
- •Visual c#
- •Использование объекта Page
- •Visual Basic
- •Visual с#
- •Использование объекта Request
- •Visual Baste .Net
- •Visual c#
- •Использование объекта Response
- •Visual Baste .Net
- •Visual c#
- •Лекция 10. Сохранение сведений о состоянии Способы сохранения сведений о состоянии
- •Использование строк запросов
- •Visual Basic .Net
- •Visual c#
- •Использование переменных состояния Application и Session
- •Упорядочение доступа к переменным состояния
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Отключение переменных состояния Session
- •Лекция 11. Web-элементы управления. Использование элементов управления.
- •Простые элементы управления
- •Элементы управления Label
- •Элементы управления HyperLink
- •Элементы управления Image
- •Элементы управления CheckBox
- •Элементы управления RadioButton
- •Элементы управления Table
- •Элементы управления DropDownList
- •Элементы управления ListBox
- •Элементы управления CheckBoxList
- •Элементы управления RadioButtonList
- •Лекция 12. Проверяющие элементы управления
- •Использование проверяющих элементов управления
- •RequiredFieldValidator
- •RangeValidator
- •CompareValidator
- •RegularExpression Validator
- •CustomValidator
- •ValidationSummary
- •Отмена проверки вводимых данных
- •Лекция 13. Введение в Web-сервисы Обзор Web-сервисов xml
- •Инфраструктура Web-сервисов xml
- •Взаимодействие клиентов и Web-сервисов xml
- •Лекция 14. Механизм обнаружения Web-сервисов xml
- •Использование Web-сервисов xml
- •Добавление Web-ссылки
- •Генерация класса прокси
- •Создание объекта класса прокси
- •Доступ к Web-сервису xml через объект прокси
- •Сериализация
- •Лекция 15. Управление Web-методами при помощи атрибутов Атрибуты Web-метода
- •Буферизация откликов Web-метода
- •Visual c#
- •Пользовательские маркеры
- •Подписи
- •Шифрование
- •Лекция 17. Модель безопасности asp.Net
- •Лекция 18. Введение в инфраструктуру Microsoft .Net Remoting
- •Объекты .Net Remoting
- •Передача объектов по механизму .Net Remoting
- •Пример кода для простого серверного объекта .Net Remoting
- •Срок жизни, определяемый арендой
- •Channel Services (System.Runtime.Remoting.Channels)
- •Пример кода, загружающего Channel Services
- •Форматирующие объекты сериализации (System.Runtime.Serialization.Formatters)
Элементы управления Table
Добавляют к Web-формам HTML-таблицы, генерируя для браузеров комбинацию тэгов <table>, <tr> и <td>. Вот один из способов создания таблицы на Web-форме:
<table>
<tr>
<td>Row 1, Column 1</td> <td>Row 1, Column 2</td>
</tr>
<tr>
<td>Row 2, Column 1</td> <td>Row 2, Column 2</td>
</tr> </table>
А вот такая же таблица, созданная элементом управления Table:
<asp:Table ID="MyTable" RunAt="server">
<asp:TableRow>
<asp:TableCell>Row 1, Column 1</asp:TableCell>
<asp:TableCell>Row 1, Column 2</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>Row 2, Column 1</asp:TableCell>
<asp:TableCell>Row 2,Column 2</asp:TableCell>
</asp:TableRow>
</asp:Table>
Элементы управления Table полезны, когда содержимое таблицы нужно изменять динамически. Например, в следующем серверном сценарии изменяется текст во всех ячейках таблицы:
MyTable.Rows[0].Cells[0].Text = "Cell 1";
MyTable.Rows[0].Cells[1].Text = "Cell 2";
MyTable.Rows[1].Cells[0].Text = "Cell 3";
MyTable.Rows[1].Cells[1].Text = "Cell 4";
А этот сценарий создает во время исполнения всю таблицу: <asp:Table ID="MyTable" RunAt="server" />
<script language="C#" runat="server">
void Page_Load (Object sender, EventArgs e)
{
for (int i=0; i<2; i++){
TableRow row = new TableRow ();
for (int j=0; j<2; j++){
TableCell cell = new TableCell ();
cell.Text = String.Format ("Row {0}, Column {1}", i + 1, j + D;
row.Cells.Add (cell);
}
MyTable.Rows.Add (row);
}
}</script>
Эти сценарии работают благодаря тому, что строки, содержащиеся в объекте Table, доступны через свойство Rows. Каждая строка набора Rows — это экземпляр класса TableRow. Внутри строки каждая ячейка представлена объектом ТаbleСеll, доступ к которому осуществляется посредством набора Cells объекта-строки. Вызов Add для набора Rows или Cells позволяет программно добавить строку к таблице или ячейку к строке.
По умолчанию рамки элементов управления Table невидимы. Изменить это можно, установив свойство GridLines в Horizontal, Vertical или Both. Другие свойства Table — CellPadding и Cellspacing — как и одноименные HTML-атрибуты, управляют промежутками внутри ячеек, a BackImageUrl задает фоновую картинку. Таблицы часто используются Web-страницами для отображения цветного фона. Изменить цвет фона для Table позволяет его свойство BackColor, унаследованное от WebControl.
Кнопки
Семейство Web-элементов управления включает три типа кнопок: Button, LinkButton и ImageButton. Все три имеют общее функциональное назначение: возврат содержащей их формы на сервер. Отличия: Button выглядит как командная кнопка, LinkButton — как гиперссылка, a ImageButton отображает заданную картинку. Практически на любой Web-форме есть одна или несколько кнопок, с помощью которых пользователь может отправить форму на сервер.
Ниже приведены примеры объявления экземпляров кнопок каждого типа:
<asp:Button Text="Sort" RunAt="server" />
<asp:LinkButton Text="Sort" RunAt="server" />
<asp:ImageButton ImageUrl="sort.jpg" RunAt="server" />
Свойство Text задает текст, отображаемый поверх элемента управления Button или LinkButton. ImageUrl задает картинку, отображаемую элементом управления ImageButton. Все типы кнопок генерируют по щелчку два вида событий: Click и Command. Атрибут OnClick в тэге элемента управления связывает с кнопкой обработчик Click. Обработчики Click для Button и LinkButton имеют такой прототип:
void OnClick (Object sender, EventArgs e) {
// Здесь выполняется обработка события.
}
А прототип обработчиков Click кия элементов ImageButton отличается:
void OnClick (Object sender, ImageClickEventArgs e) {
// Получить координаты щелчка.
int x = e.X;
int у = e.Y; }
События Command полезны для «совмещения» элементов управления, чтобы выполнять различные действия в зависимости от значения CommandArgument. Их также можно применять для связывания нескольких кнопок с одним обработчиком, который ведет себя по-разному в зависимости от того, какая кнопка была нажата.
Списки
В семейство элементов управления со списками входят 4 члена: ListBox, Drop-DownList, CheckBoxList и RadioButtonList. У них две общие характеристики: все они произведены от SystemWeb.UI.WebControls.ListControl и предназначены для отображения списков. Элементы управления ListBox и DropDownList содержат текстовые строки, которые могут быть выбраны пользователем. Оба преобразуются в HTML-теги <select>. CheckBoxList и RadioButtonList отображают массивы флажков и переключателей и преобразуются в тэги <input type=«checkbox»> и <input type=«radio»> соответственно. Тэги <input> могут содержаться в HTML-таблице для выравнивания.
Элементы списков представляются экземплярами класса ListItem, которые объявляются тэгами <asp:ListItem>. ListItem содержит текстовые свойства Text и Value. Text — это текст элемента списка; Value — произвольная строка, связанная с этим пунктом списка. ListItem также имеет свойство Selected булевого типа указывающее, выбран ли данный пункт. Следующие операторы объявляют ListBox, содержащий 4 элемента, и выбирают второй элемент:
<asp: ListBox ID="MyListBox" RunAt="server">
<asp: Listltem Text="John" RunAt="server" />
<asp: Listltem Text="Paul" Selected="true" RunAt="server" />
<asp: Listltem Text="George" RunAt="server" />
<asp: Listltem Text="Ringo" RunAt="server" /> </asp: ListBox>
Небольшое изменение кода создает вместо ListBox элемент управления DropDownList:
<asp:DropDownList ID="MyDropDownList" RunAt="server">
<asp:ListItem Text="John" RunAt="server" />
<asp:ListItem Text="Paul" Selected="true" RunAt="server" />
<asp:ListItem Text="George" RunAt="server" />
<asp:ListItem Text="Ringo" RunAt="server" /> </asp: DropDownList>
В ListBox или DropDownList свойство Selected объекта ListItem определяет, выбран ли данный элемент (true) или нет (false). В CheckBoxList или RadioButtonList то же свойство определяет, включен ли данный элемент.
После возврата формы серверному сценарию не надо проверять каждый элемент списка, чтобы определить выбранный. Элементы управления со списками наследуют от базового класса ListControl свойства SelectedIndex и Selectedltem. Таким образом, сценарий может определить, какая кнопка-переключатель выбрана, считывая ее индекс (индексы начинаются с 0):
int index = MyRadioButtonList.SelectedIndex;
Для элементов управления CheckBoxList свойства SelectedIndex и SelectedItem не столь интересны, так как может быть установлено более одного флажка из списка, но для других списков они крайне полезны.
При изменении выбора, т. е. при выборе нового элемента ListBox и DropDownList или по щелчку кнопки в CheckBoxList и RadioButtonList элементы управления со списками генерируют событие SelectedIndexChanged. По умолчанию событие не генерируется, пока какое-либо иное событие не вызовет возврат формы. Однако все списки наследуют от ListControl свойство AutoPostBack, которое можно установить в true, чтобы события SelectedIndexChanged генерировались немедленно.
