|
Программирование >> Asp.net
Этот метод будет привязан к кнопке с помощью кода, добавленного в 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-серверные элементы управления.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |