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

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


в файле .aspx, либо, как в предыдущем примере, в отдельном файле .aspx.cs, который обычно называют файлом отделенного кода .

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

□ Процесс ASP.NET просматривает страницу и определяет, какие объекта: должны быть созданы для того, чтобы сконструировать экземпляр модели страницы.

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

□ Дополнительный код, включенный в страницу .aspx, комбинируется с этим базовым классом для завершения построения объектной модели.

□ Полный код компилируется и помещается в кэш, готовый к обработке последующих запросов.

□ Генерируется HTML-код, который возвращается пользователю.

Файл отделенного кода, сгенерированный средой разработки для нашего Web-сайта PCSWebApp1 и помещенный в Default.aspx, очень прост. Если мы заглянем в него, то в начале увидим набор ссылок на пространства имен, которые вы, возможно, будете использовать в Web-страницах ASP.NET:

using System;

using System.Data;

using System.Configuration;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Xml.Linq;

Под этими ссылками находится почти пустое частичное определение класса:

public partial class Default : System.Web.UI.Page {

protected void Page Load(object sender, EventArgs e)

Здесь обработчик событий Page Load() может быть использован для добавления любого необходимого в момент загрузки страницы кода. По мере добавления новых обработчиков событий этот класс будет наполняться кодом. Обратите внимание, что здесь нет кода, который связывает обработчик событий со страницей - как уже говорилось ранее, это делает исполняющая система ASP.NET. Такое поведение задано атрибутом AutoEventWireUp - присваивание ему значения false означало бы необходимость ассоциировать обработчики с событиями вручную.

Этот класс является частичным классом, поскольку этого требует процесс, описанный выше. Когда выполняется предварительная компиляция страницы, то на основе кода ASP.NET вашей страницы создается отдельное определение частичного класса. Оно включает все элементы управления, которые были добавлены на страницу. На этапе проектирования компилятор распознает это определение частичного класса, что позволяет вам использовать IntelliSense в вашем коде для ссылочных элементов управления на вашей странице.



Серверные элементы управления ASP.NET

Наш сгенерированный код пока мало на что пригоден, поэтому следующее, что потребуется сделать - добавить некоторое содержимое. Это можно сделать в Visual Studio с помощью дизайнера Web Forms, который поддерживает перетаскивание элементов мышью - почти таким же способом, как это делается в дизайнере Windows Forms.

На страницы ASP.NET можно добавлять три типа элементов управления.

□ Серверные элементы управления HTML - имитируют элементы HTML, которые должны быть знакомы разработчикам на HTML.

□ Серверные элементы управления Web - новый набор элементов, часть которого имеют ту же функциональность, что и элементы HTML. Эти элементы управления используют общую схему именования свойств и прочих элементов для облегчения разработки и согласования с аналогичными элементами управления Windows Forms. Как увидим позднее, доступны также некоторые другие совершенно новые и очень мощные элементы управления. Среди Web-сервер-ных элементов управления есть стандартные - такие как кнопки, элементы проверки достоверности для контроля пользовательского ввода, элементы регистрации (Login), упрощающие управление пользователями, - а также более сложные элементы, предназначенные для работы с источниками данных.

□ Настраиваемые и пользовательские элементы управления - эти элементы определяются разработчиком и могут быть созданы разными способами, как описано в главе 38.

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

Теперь добавим несколько Web-серверных элементов управления к созданному в предыдущем разделе Web-сайту PCSWebApp1. Все Web-серверные элементы управления используются в следующей форме XML-элемента:

<asp:имяЭлемента runat= server атрибут= 3Ha4eHMe >CoMepmHMoe</asp:имяЭлемента>

Здесь имяЭлемента - имя серверного элемента управления ASP.NET, атрибут= значение - одна или более спецификаций атрибутов, а Содержимое - содержимое, если оно есть. Некоторые элементы позволяют устанавливать свойства посредством атрибутов и содержимого элемента управления, такого как Label (используемого для простого отображения текста), где Text может быть специфицирован обоими способами. Другие элементы управления могут применять схему содержания элементов для определения их иерархии, например, Table (определяет таблицу), который может включать в себя элементы TableRow для декларативного описания строк таблицы.

Поскольку синтаксис элементов управления базируется на XML (хотя они могут быть включены и в не-XML-код, такой как HTML), считается ошибкой, если не указан закрывающий дескриптор и /> для пустых элементов или же определения элементов управления перекрываются.



И, наконец, мы опять видим здесь атрибут runat= server . Его смысл здесь - такой же, как и везде, и часто допускаемой ошибкой является пропуск этого атрибута, в результате чего получаются неработающие Web-формы.

Первый пример будет очень простым. Изменим представление HTML-дизайна Default.aspx следующим образом:

<%@ Page Language= C# AutoEventWireup= true CodeFile= Default.aspx.cs Inherits= Default %>

<!DOCTYPE html PUBLIC - W3C DTD XHTML 1.1 EN http: www.w3.org/TR/xhtml11/DTD/xhtml11.dtd > <html xmlns= http: www.w3.org/1999/xhtml > <head runat= server >

<title>Untitled Page</title> </head>

<body>

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

<asp:Label runat= server ID= resultLabel /Xbr />

<asp:Button runat= server ID= triggerButton Text= Click Me />

</div> </form> </body> </html>

Здесь добавлены два элемента управления Web Forms: метка (Label) и кнопка (Button).

Обратите внимание, что когда вы будете это делать, средство IntelliSense в Visual Studio .NET предвосхитит ввод нужного кода, как это имеет место и в редакторе кода C#. Кроме того, если вы отредактируете свой код в раздельном представлении, а затем синхронизируете представления, то элемент, который вы редактируете в панели исходного кода, будет выделен в панели дизайнера.

Вернувшись на экран дизайнера, мы увидим, что элементы управления добавлены и поименованы в соответствии со значение атрибутов ID (атрибут ID часто называют идентификатором (identifier) элемента управления). Как и в Windows Forms, здесь предоставляется полный доступ к свойствам, событиям и тому подобному - через окно свойств, причем все внесенные изменения немедленно отображаются как на экране дизайнера, так и в коде.

Вы можете использовать окно CSS Properties (Свойства CSS) и любые другие окна стилей для выбора стилей для ваших элементов управления. Однако если вы знакомы с CSS, то вы, вероятно, пока что можете не прибегать к этому способу, а сосредоточиться на функциях других элементов управления.

Все добавленные серверные элементы управления автоматически становятся частью объектной модели разрабатываемой формы. Это приятное открытие для разработчиков приложений Windows Forms - они обнаружат здесь полное сходство.

Чтобы заставить наше приложение делать что-то полезное, нам нужно добавить обработчик события щелчка кнопки. Здесь мы можем либо ввести имя метода в окне свойств кнопки, либо просто дважды щелкнуть на кнопке, чтобы получить обработчик события по умолчанию. Если сделать так, то автоматически будет добавлен метод обработки события следующего вида:

void triggerButton Click(object sender, EventArgs e)



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

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