Технологии разработки internet -приложений

6
проф. В.К.Толстых, www.tolstykh.com Технологии Технологии разработки разработки Internet Internet - - приложений приложений ASP.NET ASP.NET приложения – приложения – класс класс Control Control Из цикла лекций «Технологии разработки Internet-приложений» для студентов 4-го курса кафедры Компьютерных технологий физического факультета Донецкого национального университета

Upload: emilie

Post on 05-Jan-2016

41 views

Category:

Documents


2 download

DESCRIPTION

Из цикла лекций «Технологии разработки Internet-приложений» для студентов 4-го курса кафедры Компьютерных технологий физического факультета Донецкого национального университета. Технологии разработки Internet -приложений. ASP.NET приложения – класс Control. Класс Control. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Технологии разработки  Internet -приложений

проф. В.К.Толстых, www.tolstykh.com

Технологии Технологии разработки разработки InternetInternet--приложенийприложений

ASP.NET ASP.NET приложения – приложения – класс класс ControlControl

Из цикла лекций «Технологии разработки Internet-приложений» для студентов 4-го курса кафедры Компьютерных технологий физического факультета Донецкого национального университета

Page 2: Технологии разработки  Internet -приложений

Класс Control

Предок всех серверных элементов управления (Web, HTML, пользовательских, специализированных…)

Класс Control определён в пространстве имён System.Web.UI

Основные потомки Control – это HtmlControl и WebControl

Среди элементов управления могут встречаться как элементы-контейнеры (контейнеры именования,

например , Panel , Table), которые могут содержать дочерние элементы (свойство Controls – содержимое

коллекции контейнера), так и самостоятельные элементы, которые не подразумевают, что у них будут

доступны дочерние элементы (например, Button). В момент генерации страницы происходит рекурсивный

перебор всех элементов управления для генерации конечного HTML-кода, отправляемого пользователю.

Page 3: Технологии разработки  Internet -приложений

Свойство Описание

ID Идентификатор, задаваемый программистом

UniqueID Идентификатор, генерируемый системой на сервере на основе ID, если он был задан. Если элемент управления находится в другом элементе управления, то UniqueID содержит ID, сцепленное с именем контейнера именования (см. NamingContainer).

ClientID Атрибута id и/или name в HTML, генерируемый для клиента на основе ID, если он был задан, иначе он принимает вид типа «_ctlиндекс». Этот режим устанавливается атрибутом

ClientIDMode (см. далее).

NamingContainer Возвращает ссылку на объект Контейнер именования (родительский элемент-контейнер). В контейнере именования к именам дочерних элементов добавляют префикс от родительских контейнеров, например, кнопка Btn на панели pnl может получить идентификатор UniqueID – ctrl0$pnl$Btn, а ClientID – ctrl0_pnl_Btn. Если этого не делать, то все составные элементы будут принадлежать непосредственно странице Page.

Visible True или false – надо или не надо делать рендеринг элемента. Элемент может быть невидимым, но его свойства и методы будут доступны

Controls Коллекция ссылок на дочерние элементы текущего элемента-контейнера

Parent Возвращает ссылку на родительский элемент

EnableViewState Указывает должен ли элемент сохранять своё состояние между запросами

EnableTheming Указывает, применяются ли к элементу управления темы (таблицы стилей, рисунки, скины)

SkinID Идентификатор обложки элемента. Обложка – множество конкретных значений атрибутов оформления элементов типа label, button…

TemplateSource Directory

Возвращает имя виртуального каталога текущей страницы

Основные свойства класса Control

Page 4: Технологии разработки  Internet -приложений

Атрибут ClientIDMode (ASP.NET 4.0)

Автоматическое формирование клиентских идентификаторов (ClientID) с учётом иерархии контейнеров может заметно усложнить разработку клиентской части приложения. При разработке клиентских стилей, скриптов необходимо заранее знать идентификаторы объектов. Например, следующий стиль

#txtName { font-weight: bold; } придётся оформлять в виде

#ctl00_content_txtName { font-weight: bold; } «Старый» способ преодоления такой проблемы может иметь вид:

<script type="text/javascript"> var txtName = "<%= txtName.ClientID %>";

</script>

Атрибут ClientIDMode получает или задает алгоритм создания значения свойства ClientID.

Пример формирования статического идентификатора:

<script type="text/javascript"> function f() { document.getElementById("SelectedSport").innerHTML =...; }

</script> ... <asp:Label ID="SelectedSport" runat="server" ClientIDMode="Static"> </asp:Label>

Значение атрибута ClientIDMode равное AutoID – это традиционное автоматическое формирование

ClientID, Predictable – формирование ClientID с префиксом его контейнера (например,

content_txtName), Inherit – наследует настройки ClientIDMode его родительского элемента

управления. Значение ClientIDMode можно устанавливать и в директиве @Page

Page 5: Технологии разработки  Internet -приложений

Метод Описание

ApplayStyleSheetSkin

Применяет обложку в соответствии со SkinID

DataBind Вызывает для всех дочерних элементов управления метод DataBind связывания с БД

Dispose Выполняет задачи очистки для элемента управления перед его удалением

Focus Передаёт фокус ввода элементу управления

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

HasControls Указывает, имеет ли элемент управления дочерние элементы

RenderControl Делает рендеринг элемента управления

ResolveClientURL Определяет URL для клиента, чтобы он мог использовать ресурсы сервера (страницы, рисунки…)

ResolveURL Возвращает абсолютный URL

Основные методы класса Control

Page 6: Технологии разработки  Internet -приложений

Событие Описание

DataBinding Связывание элемента с БД

Disposed Удаление элемента управления из памяти

Init Инициализация элемента управления

Load Загрузка в память инициализированного элемента управления

PreRender Элемент управления готов к рендерингу, вызывается метод RenderControl

Unload Элемент управления выгружается из памяти

События класса Control