Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л3 Серверные элементы управления.doc
Скачиваний:
8
Добавлен:
28.02.2016
Размер:
388.1 Кб
Скачать

Лекция 3. Серверные элементы управления

1 Web-формы в ASP.NET

Web-формы вASP.NET— это основной элемент динамическогоWeb-сайта.Web-формы определяются как программируемыеWeb-страницы, которые служат пользовательским интерфейсом в приложенияхASP.NET.Web-форма — это комбинация кодаHTML, программного кода и элементов управления.Web-формы в приложенииASP.NET представлены файлами с расширением .aspx.

Web-формы обычно создаются двумя способами:

в окне Solution Explorer можно щелкнуть правой кнопкой мыши по строке проекта, в контекстном меню выбрать Add New Item (Добавить новый элемент) и в списке шаблонов выбрать Web Form;

  • можно просто добавить в проект существующую страницу HTML с готовым оформлением и переименовать ее в окне Solution Explorer, присвоив ей расширение .aspx. Необходимые изменения на страницу будут внесены автоматически.

Главное специфическое для ASP.NET содержаниеWeb-формы — это специальные теги с атрибутами. На форме может быть три типа тегов с атрибутами:

  • страничные атрибуты, (@ Page), которые определяют общие параметры для всей Web-формы;

  • атрибуты тела Web-формы (body), которые определяют общие параметры отображения содержимого страницы;

  • атрибуты форм (form), которые определяют параметры работы с формой — набором элементов управления (не путать с Web-формой).

Тег атрибутов страницы @Page

Код HTML дляWeb-формы (файла .aspx) обычно начинается с тега @Page, который определяет параметры данной страницы. Сразу отметим, что если вам необходимо указывать одинаковые параметры для большого количества страниц, то можно не прописывать эти параметры в тег @Page для каждой страницы, а воспользоваться едиными настройками на уровне приложения в файлеweb.config.

По умолчанию данный тег для каждой новой страницы .aspxвыглядит так:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

Прокомментируем значение каждого из атрибутов:

  • Language — это, конечно, указание на язык, который используется для программных вставок на самой странице (для кода на страницах codebehind он определяется отдельно). Можно указывать любой .NET-совместимый язык, например. Visual Basic.NET ("vb"), C# ("c#") или JavaScript ("jscript"). Однако для каждой страницы язык может быть указан только один;

  • AutoEventWireup — это значение позволяет определять, какие имена можно будет использовать для событийных процедур данной страницы. Если для данного атрибута используется значение "true", то это значит, что имена событийных процедур для страницы жестко предопределены. Например, для события загрузки страницы можно будет использовать только событийную процедуру с именем Page_Load(). Если же для этого атрибута использовать значение "false" (по умолчанию), то имена событийных процедур можно определять самостоятельно при помощи конструкции с ключевым словом handles:

Sub MyPageLoad(sender As Object, e As EventArgs) Handles MyBase.Load

 CodeFile — этот атрибут определяет имя файлаcodebehind, который используется для данной страницы. В предыдущих версияхASP.NETиспользовался другой атрибут —CodeBehind, который вASP.NET2.0 оставлен только для обеспечения обратной совместимости. АтрибутCodeFile используется вместе с атрибутомInherits.

 Inherits — этот атрибут определяет, от какого класса с точки зрения программного кода производится объект данной страницы. Можно использовать любой класс, производный от System.Web.UI.Page.

Для тега @Pageпредусмотрено множество других атрибутов. Ниже представлена информация только о наиболее часто используемых атрибутах:

 AspCompat — если для этого атрибута установить значение "true". то страница будет работать в режиме совместимости с обычнымASP. Например, для нас открывается возможность работы сCOM-объектомObjectContext, представляющим обычную страницуASP, страница будет работать в однопотоковом режиме и т.п. Использовать этот атрибут нужно очень осторожно, поскольку это может привести к нежелательным эффектам, например, снижению производительности работы приложения.

 ClassName — позволяет определить имя класса, который будет представлять данную страницу в коде. Если этот атрибут не определен, используется значение по умолчанию, совпадающее с именем файла страницы.

 ClientTarget — при помощи этого атрибута можно определить "целевого клиента" в виде конкретногоWeb-броузера или аппаратного устройства. Значения этого атрибута должны соответствовать определениямClientTargetв файле конфигурации приложения.

 CodePage — определяет кодировку, которая будет использоваться при возврате клиенту этой страницы.

 CompilationModeиCompilerOptions — при помощи этих параметров можно определить специфические параметры для компиляторовC# иVB.NET.

 ContentType — позволяет определить тип содержимого при возврате страницы пользователю в соответствии со стандартомMIME. Например, если вы возвращаете клиенту код в форматеXML, значение этого атрибута можно определить как "text/xml".

 EnableEventValidation— только если для этого атрибута установлено значение "true" (по умолчанию), можно будет проверять, срабатывали ли раньше события при повторном обращении к этой странице.

 EnableSessionState — если для этого атрибута установить значение "true", то будет разрешена работа с состоянием сеанса. Подробно про работу с состоянием рассказывается в разделе 14.

 EnableViewState — если для этого атрибута установить значение "true" (по умолчанию), то состояние страницы (viewstate) будет сохраняться между обращениями клиента к этой странице.

Теги для форм HTML в приложениях ASP.NET

Атрибуты форм HTML на страницах ASP.NET 2.0, атрибут runat="server"

Основное назначение ASP.NET — создание динамическихWeb-сайтов. Поэтому в большинстве ситуаций на сайтахASP.NET предусмотрены страницы с формамиHTML, на которых размещены элементы управления, которые предназначены для приема информации от пользователей.

Сразу отметим следующий момент: в ASP.NET слово "форма" (form) употребляется в двух значениях. Во-первых, это слово употребляется для обозначения самойWeb-страницы с расширением .aspx (Web-форма). Во-вторых это слово употребляется для обозначения обычных формHTML, которые размещаются на страницахHTML и служат контейнерами для элементов управления. В этом разделе речь пойдет именно про формыHTML на страницахASP.NET2.0.

В большинстве ситуаций создавать форму на странице ASP.NET2.0 вручную нет необходимости. Обычно она создается автоматически при перетаскивании изToolBox наWeb-страницу любого элемента управления. По этой причине вToolBoxдаже не предусмотрено специального элемента управления для форм. Однако при желании вы можете как создать форму вручную, так и настроить ее параметры в режиме работы с кодомHTML (вкладкаSourceвVisual Web Designer). В самом простом варианте тег для формы выглядит так:

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

...

</form>

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

 на странице .aspxможет быть только одна форма, обрабатываемая сервером (то есть с атрибутомrunat="server". В противном случае при попытке обработать эту страницу вASP.NETвозникнет исключение;

 для форм ASP.NET, которые должны обрабатываться сервером, обязательно должен быть указан атрибутrunatсо значением "server". Именно этот атрибут говорит о том, что события для элементов управления данной формы должны обрабатываться сервером. Если этот элемент управления указан не будет, то в этом случае форма будет вести себя как обычная формаHTML;

 в открывающем теге не должен использоваться атрибут action. Значение этого атрибута настраивается подсистемойASP.NETв автоматическом режиме.

Важной особенностью ASP.NETявляется использование серверных элементов управления на веб-странице (элементы WebForm ), которые являются фактически тэгами, понятными веб-серверу. Эти элементы определены в пространстве имен System.Web.UI.WebControls.

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

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

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

Таблица соответствия некоторых серверных элементов управления web тегам HTML

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

Соответствующий тег HTML

Назначение

<asp:Label>

<Span>

Отобразить текст

<asp:ListBox>

<Select>

Список выбора

<asp:DropDownList>

<Select>

Выпадающий список

<asp:TextBox>

<Input Type="Text"> <Input Type="Password"> <Textarea>

строка редактирования поле редактирования

<asp: HiddenField>

<Input Type="Hidden">

Невидимое поле

<asp:RadioButton>,

<asp:RadioButtonList>

<Input Type="Radio">

Переключатель, список переключателей

<asp:CheckBox>,

<asp:CheckBoxList>

<Input Type="CheckBox">

Флажок, список флажков

<asp:Button>

<Input Type="button">

<Input Type="submit">

Командная кнопка

<asp:Image>

<img>

Изображение

<asp:ImageButton>

<input type="image">

Кнопка-изображение

<asp: Table>

<Table>

Таблица

<asp:Panel>

<Div>

Контейнер

<asp:BulletedList>

<ul>,<ol>

Маркированный список

<asp:HyperLink>

<A Href>

гиперссылка