Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Блоки отображения






Любой код, внедренный с помощью < % и %>, обрабатывается во время события Render как часть страницы. В теле блока < % %> допустимо объявлять переменные (тогда они будут локальными для того метода, в котором данный блок будет реализован), но нельзя объявлять методы или типы.

Такой стиль программирования был характерен для asp. Чаще всего в блоках отображения выводится HTML-код с помощью Response.Write.

< %= someExpr %> является сокращением < % Response.Write (someExpr) %>:

< html> < head> < /head> < body> 1 Строка HTML< br /> < % Response.Write (" 1 Строка ASP.NET < br /> "); %> 2 Строка HTML< br /> < % Response.Write (" 2 Строка ASP.NET< br /> "); %> 3 Строка HTML< br /> < % =" 3 Строка ASP.NET< br /> "; %> < /body> < /html>

Более современный способ — использование серверных элементов управления. Они описаны в теле страницы подобно обычным элементам разметки, являются членами класса страницы. К ним возможно обращение через идентификатор. Например, вместо того чтобы выводить текст через Response.Write, можно установить текст элемента управления.

Объект любого класса создается с помощью синтаксиса " тег объекта":

< object id=" items" class=" System.Collections.ArrayList" runat=" server" />

Это эквивалентно описанию в классе страницы поля:

System.Collections.ArrayList items;

Заключение

Технология ASP.NET построена на объектно-ориентированном событийно-управляемом подходе к созданию web-страницы. Классы, используемые для генерации web-страниц, являются частью библиотеки.NET Frameworks. Для многих из них существуют аналоги в Windows Forms, что сближает программирование настольных приложений с программированием web-приложений.

 

 

 

 

 
2: Серверные элементы управления: Дается обзор классов элементов управления ASP.NET и их сравнение с HTML. Работа с дизайнером форм.
Одна из самых важных задач web-разработчика — получение и обработка данных, введенных пользователем. Информация посылается серверу через форму. Форма содержит элементы управления, которые позволяют различными способами вводить информацию. Формы применяются в большинстве сайтов. Например, если вы пишете письмо в web-интерфейсе, появляется форма с текстовыми полями, соответствующими адресату, теме и тексту письма. Нажатием на кнопку можно добавить прилагаемый файл и окончательно послать письмо кнопкой Send. Форма HTML содержит теги, такие как текстовое поле, выпадающий список, переключатели (radiobuttons) и флажки (checkbox), кнопки. Формы ASP.NET отличаются от обычных форм наличием свойства runat=" server". Они обрабатываются ASP.NET на сервере. Формы являются одним из полей страницы. На странице находятся элементы управления. Многие из них должны быть расположены внутри формы. ASP.NET позволяет запоминать состояние элементов управления, то есть текст, который был введен в текстовое поле, или выбранный переключатель, передавать его на сервер и обратно на страницу после ее обновления: < form ID=" FormVote" runat=" server" > < /form> Все формы обрабатываются методом POST. Атрибут Action можно задавать, но не обязательно. По умолчанию это текущая страница. У элементов управления ASP.NET. тоже имеется свойство runat=" server". Второй обязательный атрибут — это его идентификатор, или ID. Он нужен, чтобы обращаться к элементу в программе, то есть это имя члена страницы, по которому мы можем его идентифицировать. Перечислим группы элементов управления:
  • Элементы управления HTML.
Элементы управления HTML являются наследниками класса System.Web.UI.HtmlControls.HtmlControl. Они непосредственно отображаются в виде элементов разметки HTML. Их отображение не зависит от типа браузера. Свойства таких элементов полностью соответствуют атрибутам тегов HTML. Сравните обычный тег < input id=" Reset1" type=" reset" value=" reset" /> с элементом управления HTML < input id=" Reset1" runat=" server" type=" reset" value=" reset" /> Разница заключается только в наличии атрибута runat=" server". Но он дает колоссальную разницу. Теги сервер отображает как есть, а элементом управления можно манипулировать в коде. Только во втором случае в функции-методе страницы можно написать Reset1.Value = " АСП"; что равносильно this.Reset1.Value = " АСП"; Следовательно, Reset1 становится одним из членов класса страницы. Эти классы используют, если необходимо получить определенные теги HTML или если нужно конвертировать старые страницы asp. Элементы управления HTML можно размещать на одной странице вперемешку с серверными элементами.
  • Стандартные или серверные элементы управления.
Серверные элементы мощнее, потому что они привязаны не к разметке, а к функциональности, которую нужно обеспечить. Многие элементы не имеют аналогов в HTML, например, календарь. Их отрисовка полностью контролируется ASP.NET. Перехватывая события PreRender, Init, Load, можно вмешаться в этот процесс. Объявления серверного элемента управления начинаются с блока < asp: тип> и заканчиваются < /asp: тип> Например: < asp: Label ID=" Label1" runat=" server" Text=" Hello World" > < /asp: Label> Возможно также закрыть объявление тегом />, если внутри блока нет текста: < asp: Label ID=" Label1" Runat=" server" Text=" Hello World" /> Свойства этих элементов строго типизированы, в отличие от HTML-элементов. В этой таблице приведены элементы управления, которые имеют пару среди тегов HTML. Вообще их гораздо больше. Некоторые элементы генерируют не только HTML-код, но и JavaScript. В ASP.NET 2.0 было добавлено множество новых сложных элементов управления, например, MultiView, TreeView, Wizard, GridView. О возможностях одного только GridView можно написать целую статью. Таблица соответствия некоторых серверных элементов управления тегам 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> Гиперссылка

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

Все серверные элементы управления находятся в пространстве имен System.Web.UI.Control и наследуются от класса System.Web.UI.Web Controls.WebControl.

  • Элементы проверки данных.

Верификация введенных данных.

  • Источники и потребители данных.

Их работа тесно связана с внешними источниками данных.

  • Навигация по сайту.
  • Логины и пароли.
  • Web Parts.
  • Пользовательские (созданные вами лично).

Все существующие классы вы можете просмотреть с помощью Class Browser.

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

Создайте новую форму и нажмите на вкладку Design — переход в режим проектирования. Из выпадающего меню View выберите пункт ToolBox. Элементов так много, что пришлось организовать их в виде дерева. Все нужные для этого элементы управления находятся во вкладке Standard (Web Controls, если у вас WebMatrix). Кнопка F4 открывает окно " Свойство выделенного объекта", а двойной щелчок мышью автоматически создает обработчик наиболее типичного для данного элемента события.

Рассмотрим некоторые простейшие элементы.

Label

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

Большинство методов и свойств унаследовано от WebControl. Главное собственное свойство — это, конечно, его содержание — Text.

Нижеперечисленные свойства управляют внешним видом элемента, присутствуют в классе WebControl и, следовательно, применимы ко всем элементам-наследникам WebControl, а не только к Label.

BackColor Цвет фона
BorderColor Цвет границы элемента управления
BorderStyle Стиль границы — сплошной, пунктир, точечный, двойной и другие
BorderWidth Ширина границы
Enabled Активность. Если false, нельзя вводить данные, не получает фокус
Font Шрифт, состоит из нескольких атрибутов
ForeColor Цвет, которым отображается текст
Height Высота элемента
Width Ширина элемента
Visible Виден ли элемент управления
TabIndex Индекс табуляции, в порядке номеров которых в форме перемещается фокус при нажатии на клавишу Tab
ToolTip Текст окна подсказки

В версии 2.0 появилась возможность задавать для элементов управления " горячие" клавиши, или клавиши быстрого доступа. Свойство AccessKey определяет последовательность нажатых клавиш, которые приводят к установке фокуса на данном элементе. Например, AccessKey=" N" значит, что для вызова функциональности надо нажать на Alt+N. Установить фокус в Label невозможно, поэтому устанавливаем свойство AssociatedControlId, которое указывает на другой элемент. Если это TextBox, то фокус устанавливается в него.

Пример описания элемента 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.

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

< asp: Label id=" ShopNews" runat=" server" Font-Size =20 ForeColor=" red" BackColor =" lightgray" BorderWidth=4 BorderStyle=groove Height=50 width=500 Text= " Новости торговой площадки" />

Вставим это описание в страницу aspx

< html xmlns=" " https://www.w3.org/1999/xhtml" " > < head> < title> Торговая площадка< /title> < /head> < body> < center> < h2> Демонстрация метки< /h2> < br /> < form id=" frmDemo" runat=" server" > < asp: Label ID=" ShopNews" runat=" server" Font-Size=" 20" ForeColor=" red" BackColor=" lightgray" BorderWidth=" 4" BorderStyle=" groove" Height=" 50" Width=" 500" Text=" Новости торговой площадки" /> < /form> < /center> < /body> < /html>

и наслаждаемся эффектом. Надпись красного цвета на сером фоне. Стиль границы делает метку приподнятой над фоном.


Рис. 3.1.

У Label, как и у всех остальных классов, есть конструктор. Это значит, что создать его можно прямо в программе, а не прописывать на форме.

< %@ Page Language=" C#" %> < %@ Import Namespace= " System.Drawing" %> < script runat=" server" > void Page_Load() { Label ShopNews = new Label(); ShopNews.Text = " Новости торговой площадки"; ShopNews.Font.Size=20; ShopNews.ForeColor=Color.Red; ShopNews.BackColor=Color.LightGray; ShopNews.BorderWidth=4; ShopNews.BorderStyle=BorderStyle.Groove; ShopNews.Height=50; ShopNews.Width=500; frmDemo.Controls.Add(ShopNews); } < /script> < html xmlns=" https://www.w3.org/1999/xhtml" > < head> < title> Торговая площадка< /title> < /head> < body> < center> < h2> Демонстрация метки< /h2> < br /> < form id=" frmDemo" runat=" server" > < /form> < /center> < /body> < /html>

Обратите внимание на директиву < %@ Import Namespace= " System.Drawing" %>. Директива импорта нужна, чтобы обращаться к перечислению Color названий цветов, определенному в System.Drawing.

Посмотрим, что выдал ASP.NET браузеру. Вот код HTML, относящийся к нашей метке:

< form name=" frmDemo" method=" post" action=" shop.aspx" id=" frmDemo" > < div> < input type=" hidden" name=" __VIEWSTATE" id=" __VIEWSTATE" value=" /wEPDwULLTEzODAzNzU2NDZkZH95eciStELThSpcgXVWEFYeQxpR" /> < /div> < span id=" ShopNews" style=" display: inline-block; color: Red; back-ground-color: LightGrey; border-width: 4px; border-style: Groove; font-size: 20pt; height: 50px; width: 500px; " > Новости торговой площадки< /span> < /form>

Как видим, ASP.NET превратил метку в элемент разметки < span>, задав ему стили CSS. В форме появился еще один невидимый элемент по имени =__VIEWSTATE, который мы скоро обсудим.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.