Программирование >>  Asp.net 

1 2 3 [ 4 ] 5 6 7 ... 13


Этот метод будет привязан к кнопке с помощью кода, добавленного в Default. aspx:

<div>

<asp:Label Runat= server ID= resultLabel /><br /> <asp:Button Runat= server ID= triggerButton Text= Click Me

onClick= triggerButton Click />

</div>

Здесь атрибут onClick дает знать исполняющей системе ASP.NET, что при генерации модели кода формы событие щелчка на кнопке нужно связать с вызовом метода triggerButton Click().

Модифицируем код этого метода следующим образом (заметьте, что метка, как элемент управления, выводится из кода ASP.NET, поэтому вы можете использовать ее непосредственно из отделенного кода):

void triggerButton Click(object sender, EventArgs e)

resultLabel.Text = Button clicked! ;

Теперь все готово. Нет необходимости даже выполнять сборку проекта; следует только убедиться, что все было сохранено, и адресовать Web-браузер на местоположение нашего Web-сайта. Однако, поскольку для этого примера мы используем встроенный Web-сервер, его нужно как-то запустить. Быстрее всего это можно сделать, нажав комбинацию клавиш <Ctrl+F5> - при этом запустится сервер и откроется браузер с нужным URL.

Когда встроенный Web-сервер запущен, в правой части линейки внизу экрана появляется пиктограмма. Если дважды щелкнуть на ней, можно увидеть, какой Web-сер-вер запущен, и остановить его при необходимости. Диалог, появляющийся при этом, показан на рис. 37.5.


Рис. 37.5. Запуск встроенного Web-сервера

Здесь виден номер порта, на котором работает Web-сервер, а также URL, обратившись к которому можно увидеть только что созданный Web-сайт.

В открывшемся браузере на Web-странице можно видеть кнопку Click Me. Прежде чем щелкать на ней, посмотрим на код, полученный браузером, используя пункт меню PageView Source (СтраницаИсходный код) (в браузере IE7).

Раздел <form> должен выглядеть примерно так:

<form method= post action= Default.aspx id= form1 >

<div>

<input type= hidden name= VIEWSTATE id= VIEWSTATE

value= /wEPDwUKLTE2MjY5MTY1NWRkzNjRYstd1OK5KcJ9a8/X3pYTHvM= />

</div>



<div>

<span id= resultLabel ></span><br />

<input type= submit name= triggerButton value= Click Me id= triggerButton /> </div> <div>

<input type= hidden name= EVENTVALIDATION id= EVENTVALIDATION

value= /wEWAgK39qTFBwLHpP+yC4rCCl22/GGMaFwD0l7nokvyFZ8Q />

</div> </form>

Web-серверные элементы управления содержат обычный HTML-код - <span> и <input> для <asp:Label> и <asp:Button> соответственно. Есть также поле <input

type= hidden > с именем VIEWSTATE, которое инкапсулирует состояние формы,

как упоминалось ранее. Эта информация используется при обратной отправке формы на сервер для пересоздания пользовательского интерфейса, отслеживания изменений и т.д. Отметим, что элемент <form> сконфигурирован для этого; он отправляет данные обратно Default.aspx (как указано в action) через HTTP-операцию POST (указано в method). Форме присвоено имя form1.

После щелчка на кнопке и появления текста опять посмотрим на исходный HTML-код (пробелы добавлены для наглядности):

<form method= post action= Default.aspx id= form1 >

<div>

<input type= hidden name= VIEWSTATE id= VIEWSTATE

value= /wEPDwUKLTE2MjY5MTY1NQ9kFgICAw9kFgICAQ8PFgIeBFRleHQFD0J1dHR

vbiBjbGlja2VkIWRkZExUtMwuSlVTrzMtG7wrmj98tVn7 /> </div> <div>

<span id= resultLabel >Button clicked!</span><br />

<input type= submit name= triggerButton value= Click Me id= triggerButton />

</div> <div>

<input type= hidden name= EVENTVALIDATION id= EVENTVALIDATION

value= /wEWAgKTpL7LBALHpP+yC0Ymqe9SgScfB2yHTGjnlQKtbudV /> </div> </form>

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

Более подробно о состоянии представления можно прочитать в главе 38.

Чтобы убедиться, что нет необходимости ни в какой ручной компиляции, попробуем изменить текст Button clicked! в Default.aspx.cs на что-нибудь другое, сохраним файл и щелкнем на кнопке снова. Текст, который появится на Web-странице, должен соответствующим образом измениться.

Палитра элементов управления

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




интересном приложении. Этот раздел разбит на части в соответствии с организацией панели инструментов, которую можно видеть при редактировании страниц ASP.NET, как показано на рис. 37.6.

Обратите внимание, что описания элементов управления ссылаются на свойства - во всех случаях соответствующие атрибуты в коде ASP.NET называются идентично. Отметим также, что этот раздел не претендует на то, чтобы служить полным руководством, поэтому многие элементы pис. 37.6. Панель инстру-управления и свойства опущены. Здесь показаны только ментов, доступная при

наиболее часто используемые из них. Элементы управле- редактировании страниц ния, рассматриваемые в этой главе, вы сможете найти в ка- ASP.NET тегориях Standard (Стандартные), Data (Данные) и Validation

(Проверка). Категории Navigation and Login (Навигация и вход) и WebParts (Web-части) будут рассмотрены в следующей главе, а элементы управления AJAX Extensions - в главе 39. Элементы управления Reporting (Формирование отчетов), которые позволяют генерировать отчетную информацию, включая Crystal Reports, и которые должны быть представлены на Web-страницах, в этой книге не рассматриваются.

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

Почти все Web-серверные элементы управления (в этой и других категориях) унаследованы от класса System.Web.UI.WebControls.WebControl, который, в свою очередь, унаследован от System.Web.UI.Control. Те же из них, которые не используют это наследование, наследуются либо напрямую от Control, либо от более специализированных базовых классов, которые в конечном итоге происходят от Control. Этим объясняется, что Web-серверные элементы управления имеют множество общих свойств и событий, которые можно использовать при необходимости. Их достаточно много, поэтому даже не предпринимается попытка описать их все здесь.

Многие из часто используемых унаследованных свойств имеют отношение к стилю отображения. Внешним видом элементов управления можно легко управлять, используя такие свойства, как ForeColor, BackColor, Font и т.д.; управлять можно также с помощью классов каскадных таблиц стилей (CSS). Это достигается установкой строкового свойства CssClass равным имени класса CSS из отдельного файла. Для работы с каскадными таблицами стилей можно использовать окно CSS Properties (Свойства CSS). Другие достойные упоминания свойства - это Width и Height, с помощью которых можно управлять размером элемента управления, AccessKey и TabIndex - для облегчения взаимодействия с пользователем, а также Enabled - для включения/отключения функциональности элемента управления в Web Forms.

Некоторые элементы управления могут содержать в себе другие элементы управления, таким образом, образуя иерархию в пределах одной страницы. Получить доступ к вложенным элементам управления можно через свойство Controls, а к контейнерному элементу управления - через свойство Parent.

Вероятно, вам придется использовать унаследованное событие Load чаще других - для инициализации элемента управления, и PreRender - для выполнения самых последних модификаций перед выводом HTML.

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



1 2 3 [ 4 ] 5 6 7 ... 13

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика