Например, с помощью атрибута Inherits вы должны предварительно компилировать код, что довольно-таки утомительно (и может вызвать проблемы в командах разработчиков, поскольку стандартной возможностью является компиляция каждой страницы в отдельную DLL-библиотеку сборки). Но реальная
проблема состоит в том, что оба подхода вынуждают объявлять каждый элемент управления Web, который вы собираетесь использовать, с помощью переменной экземпляра. В результате получается большой объем стереотипного кода.

В ASP.NET 2.0 эту проблему можно решить с использованием нового языкового средства под названием частинных классов, которое позволяет разбить один класс на несколько файлов исходного кода. По сути, эта модель является такой же, как раньше, но объявления элементов управления перемещаются в отдельный файл. Вас как разработчика не должен отвлекать этот файл — наоборот, вы можете просто получить доступ к своим элементам управления Web-страницы по именам. Вы наверняка заметили слово partial (частичный) в объявлении класса вашей Web-страницы:

public partial class TestFormCodeBehind : Systeni.Web.UI.Page
{ ... }

Имея эту часть инфраструктуры, все остальное сделать просто. Ваша страница .aspx связывается с файлом исходного кода с помощью атрибута CodeFile, как показано ниже:

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

Обратите внимание, что Visual Studio использует несколько необычный синтаксис именования для файла исходного кода. Он содержит полное имя соответствующей Web-страницы, снабженное расширением .aspx и в конце сопровождаемое расширением .cs. Это просто соглашение, помогающее избежать проблемы при создании двух различных типов файлов скрытого кода (например, Web-страницы и Web-службы) с одинаковыми именами.

Связывание дескрипторов элементов
управления с переменными страниц

При запросе Web-страницы в браузере система ASP.NET начинает с поиска связанного файла кода. Затем она генерирует объявление переменной для каждого существующего элемента управления. Например, представим, что имеется текстовое поле с именем txtInput:

<asp:TextBox id="txtInput" runat="server"/>

ASP.NET генерирует следующее объявление переменной экземпляра и объединяет его с вашим классом страницы с использованием механизма частичных классов:

protected System.Web.UI.TextBox txtInput;

Конечно, вы не увидите это объявление. Тем не менее, вы полагаетесь на него каждый раз при написании строки кода, ссылающейся на объект txtInput (для чтения или записи свойства):

txtInput.Text = "Hello";

предыдущая    следующая страница   оглавление

87

Hosted by uCoz