Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы Java и C# технологии.doc
Скачиваний:
171
Добавлен:
01.03.2016
Размер:
3.04 Mб
Скачать
        1. Отправка данных формы другой странице asp.Net

Существенное ограничение серверных форм в ASP.NET 1.0 – отсутствие возможности непосредственно передавать данные, введенные в форме, другой странице. Чтобы отправить значения элементов на форму другой страницы необходимо использовать простую HTML форму и в атрибуте actionуказать путь к странице, которая должна получить данные. При этом теряются преимущества использования серверных форм.

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

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

<asp:textbox id="txtFirstName" runat="server" />

<br /><asp:textbox id="txtLastName" runat="server" />

<br /><asp:button id="btnSend" Text="Post Data" PostBackUrl="crosspost.aspx"runat="server" />

</form>

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

Чтобы реализовать эту возможность, среда ASP.NET 2.0 осуществляет проверку ASPX страниц на предмет наличия элементов управления с заданным атрибутом PostBackUrlи, при наличии таковых, создает на странице дополнительное скрытое поле__PREVIOUSPAGE, которое и содержит информацию о состоянии элементов формы. Эта информация доступна странице-получателю через свойствоPreviousPage.

void Page_Load(object sender, EventArgs e)

{ if (PreviousPage != null)

{ // Получаем объекты отправленной формы

TextBox txtFirstName =

(TextBox)PreviousPage.FindControl("txtFirstName");

TextBox txtLastName =

(TextBox)PreviousPage.FindControl("txtLastName");

// Используем данные

txtInfo.Text = "Добрый день, " + txtFirstName.Text + "!";

}

}

На уровне HTML кода, отправка данных другой форме выглядит следующим образом.

<form method="post" action="GetValues.aspx" id="frmTest">

<input type="submit" name="btnSend" value="Post Data"onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("btnSend", "", false, "", "CrossPage.aspx", false, false))" id="btnSend" />

</form>

Из чего можно заключить, что данные формы не направляются из браузера непосредственно странице CrossPage.aspx, а предварительно направляются все той же страницеGetValues.aspx, которая содержит формуfrmTest. Это необходимо для поддержки серверной проверки (validation) введенных данных с использованием элементов управленияRequiredFieldValidation,RangeValidation и других.

      1. Шаблоны дизайна страниц

Что, прежде всего, отличает один Web-сайт от другого? Для простого пользователя сети Internetосновное отличие заключается в разнообразном дизайне странице. Прежде чем встретится с функциональными возможностями Web-приложения, посетитель сайта оценивает, нравится ли ему внешний вид страниц. Поэтому дизайн страниц является не менее важным, чем общая функциональность.

Задача разработчика писать код, а задача художника-дизайнера заниматься внешним оформлением и версткой HTML кода страниц. При этом в большинстве случаев необходимо обеспечить возможность параллельной работы над кодом приложения и HTML шаблоном. С этим весьма успешно справлялась технология разделения кода программной логики и HTML кода страницы Code-Behind. Но, при этом, при работе над каждой страницей, разработчику приходится, так или иначе, сталкиваться с разметкой страницы.

Стоит заметить, что большинство современных Web-сайтов имеют сходный внешний вид всех страниц и каждая страница имеет общие элементы дизайна. Для этого в ASP.NET 1.x общие элементы дизайна страниц заключали в пользовательские элементы управления и включались в каждую страницу, либо, наоборот, страницы преобразовывали в элементы управления, используя одну страницу в качестве основы, в которую загружали элементы управления в зависимости от строки URL.

Подход в ASP.NET 2.0 близок ко второму из названных подходов, но заключает в себе существенные преимущества. Разработчику больше нет нужды преобразовывать страницы в пользовательские элементы управления, что существенно упрощает разработку и отладку. А также существенно упрощает работу дизайнера, поскольку его задача сводится лишь во включении нескольких ASP.NET элементов в код страницы-шаблона.