Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_PSP.docx
Скачиваний:
3
Добавлен:
27.09.2019
Размер:
366.75 Кб
Скачать

Страницы с выделенным кодом

В модели выделенного кода разметка страницы и элементы на стороне сервера, включая объявления элементов управления, находятся в ASPX-файле, тогда как код страницы находится в отдельном файле кода. Файл кода содержит разделяемый класс, т. е. объявление класса с помощью ключевого слова partial (Partial в Visual Basic), показывающее, что он содержит только часть всего кода, составляющего полный класс для страницы. В разделяемом классе добавляется код, который необходим приложению для страницы. Этот код обычно состоит из обработчиков событий, но может содержать любые необходимые методы или свойства.

Модель наследования для страниц выделенного кода немного сложнее, чем для страниц одного файла. Эта модель состоит в следующем:

  1. Файл кода программной части содержит разделяемый класс, наследуемый от базового класса страницы. Базовый класс страницы может быть классом Page или другим классом, производным от Page.

  2. ASPX-файл содержит атрибут Inherits в директиве @ Page, указывающий на разделяемый класс кода программной части.

  3. При компиляции страницы ASP.NET создает разделяемый класс на основе ASPX-файла; этот класс является разделяемым классом файла класса кода программной части. Созданный файл разделяемого класса содержит объявления для элементов управления страницы. Этот разделяемый класс позволяет использование файла кода программной части как части целого класса, без необходимости явного объявления элементов управления.

  4. Наконец, ASP.NET создает еще один класс, унаследованный от класса, созданного на шаге 3. Второй созданный класс содержит код, необходимый для построения страницы. Второй созданный класс и класс кода программной части компилируются в сборку, которая выполняется для отображения выходных данных в обозревателе.

На следующем рисунке показана модель наследования для класса страницы в веб-странице ASP.NET с выделенным кодом:

Пример модели страницы с выделенным кодом

Модель страницы с выделенным кодом позволяет поместить разметку в один файл (ASPX), а программный код — в другой. Имя файла с кодом зависит от используемого языка программирования.

В модели с выделенным кодом пример однофайловой страницы из предыдущего раздела состоял бы из двух частей. Разметка содержалась бы в одном файле (в этом примере — в файле SamplePage.aspx), и была бы похожа на однофайловую страницу, пример которой приведен ниже.

Язык C#

<%@ Page Language="C#" CodeFile="SamplePage.aspx.cs"

Inherits="SamplePage" AutoEventWireup="true" %>

<html>

<head runat="server" >

<title>Code-Behind Page Model</title>

</head>

<body>

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

<div>

<asp:Label id="Label1"

runat="server" Text="Label" >

</asp:Label>

<br />

<asp:Button id="Button1"

runat="server"

onclick="Button1_Click"

Text="Button" >

</asp:Button>

</div>

</form>

</body>

</html>

Имеется два различия между страницами ASPX в однофайловой модели и модели с выделенным кодом. В модели с выделенным кодом отсутствует блок script с атрибутом runat="server". (Если на странице нужно разместить клиентский сценарий, она может содержать блоки script без атрибута runat="server".) Второе отличие заключается в том, что директива @ Page в модели с выделенным кодом содержит атрибуты, которые ссылаются на внешний файл (SamplePage.aspx.cs) и класс. Эти атрибуты связывают страницу ASPX с ее кодом, который находится в отдельном файле. Ниже приведен пример файла с выделенным кодом, который содержит тот же обработчик событий Click, что и пример однофайловой страницы из предыдущего раздела.

Язык C#

using System;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class SamplePage : System.Web.UI.Page

{

protected void Button1_Click(object sender, EventArgs e)

{

Label1.Text = "Clicked at " + DateTime.Now.ToString();

}

}

Файл с выделенным кодом содержит объявления полных классов в пространстве имен по умолчанию. Однако этот класс объявляется с помощью ключевого слова partial. Это указывает на то, что класс не содержится полностью в одном файле. При обработке страницы компилятор читает страницу ASPX и файл, на который она ссылается в директиве @ Page, компонует из них один класс, а затем компилирует их в виде модуля в одном классе.

Файл разделяемого модуля является наследником класса Page страницы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]