Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Свойства страницы






Страница — это основа всего в web-приложении.

Класс System.Web.UI.Page инкапсулирует функциональность, необходимую для создания и обработки страниц ASP.NET.

Каждая страница ASP.NET — это объект класса, который автоматически генерируется ядром ASP.NET. Класс наследуется от ассоциированного со страницей класса, если мы используем отделенный код, или прямо наследуется от System.Web.UI.Page, если код на C# встроен в страницу. Среда также создает конструктор по умолчанию.

Чтобы убедиться в этом, можем создать страницу " PageType.aspx":

< %@ Page Language=" C#" %> < html xmlns=" https://www.w3.org/1999/xhtml" > < head runat=" server" > < title> Тип страницы< /title> < /head> < body> < div> < % Response.Output.Write(" Тип данной страницы {0}", this.GetType()); %> < /div> < div> < % Response.Output.Write(" Базовый тип данной страницы {0}", this.GetType().BaseType); %> < /div> < /body> < /html>

Вот результат:

Тип данной страницы — ASP.pagetype_aspx

Базовый тип данной страницы — System.Web.UI.Page

Такая же страница, созданная по технологии разделения кода,

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

пишет результат:

Тип данной страницы — ASP.pagetype_aspx

Базовый тип данной страницы — PageType

То, что PageType — наследник System.Web.UI.Page, прописано в файле отделенного кода:

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

К текущему объекту страницы можно обращаться как к переменной Page. Page — это контейнер элементов управления данной страницы, поэтому содержит в себе коллекцию Controls. Если в теге < head> присутствует атрибут runat = " server", то в Page содержится и поле Header, через которое можно управлять заголовком страницы — например, поменять название страницы в заголовке браузера, назначить файл каскадных таблиц стилей:

< script runat=" server" > protected void Page_Init(object sender, EventArgs e) { HtmlLink myHtmlLink = new HtmlLink(); myHtmlLink.Href = " printable.css"; myHtmlLink.Attributes.Add(" rel", " stylesheet"); myHtmlLink.Attributes.Add(" type", " text/css"); Page.Header.Controls.AddParsedSubObject(myHtmlLink); Page.Header.Title = " Новый заголовок"; } protected void Page_Load(object sender, System.EventArgs e) { Style bodyStyle = new Style(); bodyStyle.ForeColor = System.Drawing.Color.Blue; bodyStyle.BackColor = System.Drawing.Color.Beige; Page.Header.StyleSheet.CreateStyleRule(bodyStyle, null, " p"); }< /script> < html xmlns=" https://www.w3.org/1999/xhtml" > < head runat=" server" > < title> Hello ASP.NET< /title> < /head> < body> < p> Учитесь программировать на ASP.NET< /p> < /body> < /html>

В этом примере мы поменяли текст заголовка. Запустите эту страницу. В получившемся HTML-коде внутри тега < title> стоит уже не " Hello ASP.NET", а " Новый заголовок", который был установлен через Page.Header.Title. Был создан стиль для тега < p>, что отразилось таким образом:

< style type=" text/css" > p { color: Blue; background-color: Beige; }< /style>

Внешняя страница CSS была импортирована из файла:

< link href=" printable.css" rel=" stylesheet" type=" text/css" /> < style type=" text/css" >

Если атрибут AutoEventWireup, который присутствует в заголовке страниц, генерируемых VS, установлен, то методы с префиксом Page_ автоматически назначаются обработчиками событий страницы.

У страницы есть два важных свойства — Response и Request. Свойство Response имеет тип HttpResponse. Response страницы можно воспринимать как выходной поток. Весь HTML-код генерируемой страницы в принципе может быть выведен через запись в этот поток. Это был обычный способ работы разработчиков asp. Но в ASP.NET есть более удобные средства вывода данных с помощью серверных элементов управления. Response лучше использовать для записи Cookies, для задания различных параметров заголовка — управлять кэшированием, свойством Expires.

Вот пример из MSDN:

HttpCookie MyCookie = new HttpCookie(" LastVisit"); DateTime now = DateTime.Now; MyCookie.Value = now.ToString(); MyCookie.Expires = now.AddHours(1); Response.Cookies.Add(MyCookie);

Можно поменять кодовую страницу:

< head runat=" server" > < %Response.Charset = " windows-1251"; %> < title> Русская кодировка< /title> < /head>

Функция Response.Redirect перенаправляет браузер на другую страницу:

Response.Redirect(" NavigationTarget.aspx? name=" + System.Web.HttpUtility.UrlEncode(Name.Text);

Здесь формируется командная строка с параметрами QueryString, которые целевая страница может прочитать.

Аналогично, свойство Request — это запрос, переданный на сервер для вывода нужной страницы. Он имеет тип HttpRequest. В нем хранится все о клиенте, включая настройки его браузера, файлы-cookie и данные, введенные им в форму:

NameLabel.Text = Server.HtmlEncode(Request.QueryString[" Name" ]);





© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.