Программирование >>  Программирование с использованием ajax 

1 ... 209 210 211 [ 212 ] 213 214 215 ... 396



Расширенное программирование для Web

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

В частности, в этой главе будут рассматриваться следующие темы.

□ Как создаются и используются мастер-страницы.

□ Как создаются и применяются пользовательские элементы управления.

□ Как производится настройка системы навигации в Web-сайтах.

□ Как используются профили.

□ Как используются Web-части.

□ Как пишется код на языке JavaScript.



Мастер-страницы

Как правило, во многих Web-сайтах какая-нибудь часть их содержимого повторно используется на каждой странице - это могут быть элементы вроде логотипа компании и меню, доступные на всех страницах. Повторять обычные элементы пользовательского интерфейса на каждой странице не нужно; вместо этого можно создать мастер-страницу (master page), добавив на нее обычные элементы. Мастер-страницы выглядят как обычные страницы ASRNET, но содержат заполнители, которые заменяются страницами содержимого.

Мастер-страницы имеют расширение файла .master, и в первой строке файла присутствует директива Master, как показано ниже:

<%@ Master Language= C#

AutoEventWireup= true CodeFile= MasterPage.master.cs Inherits= MasterPage %>

HTML-элементы <html>, <head>, <body> и <f orm> в рамках Web-сайта используются только мастер-страницами. Сами Web-страницы содержат только содержимое элемента <f orm>. Web-страницы могут внедрять свое собственное содержимое в элемент управления ContentPlaceHolder. Если Web-страница не определяет содержимое по умолчанию для элемента управления ContentPlaceHolder, это может быть сделано на Web-странице:

<html xmlns= http: www.w3.org/1999/xhtml> <head runat= server >

<title>Untitled Page</title>

<asp:contentplaceholder id= head runat= server >

</asp:contentplaceholder> </head>

<body>

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

<asp:contentplaceholder id= ContentPlaceHolderl runat= server > </asp:contentplaceholder>

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

Чтобы использовать мастер-страницу, необходимо указать атрибут MasterPageFile в директиве Page. Чтобы заменить содержимое мастер-страницы, применяйте элемент управления Content. Элемент управления Content связывает ContentPlaceHolder и ContentPlaceHolderID:

<%Page Language= C# MasterPageFile= ~/MasterPage.master

AutoEventWireUp= true CodeFile= Default.aspx.cs Inherits= default Title= Untitled Page %>

<asp:Content ID= Contentl ContentPlaceHolderID= head Runat= Server ></asp:Content>

<asp:Content ID= Content2 ContentPlaceHolderID= ContentPlaceHolderl Runat= Server ></asp:Content>

Вместо того чтобы определять мастер-страницу в директиве Page, вы можете назначить мастер-страницу по умолчанию для всех Web-страниц в элементе <pages> конфигурационного файла web. con fig:



<configuration> <system.web> <pages masterPageFile= /MasterPage.master >

<!-- ... -> </pages> </system.web> </configuration>

Если файл мастер-страницы будет сконфигурирован внутри web. conf ig, то в этом файле должна присутствовать конфигурация элемента Content для страниц ASP.NET, как было показано выше; в противном случае атрибут masterPageFile применяться не будет. Если вы используете атрибут MasterPageFile директивы Page и запись в файле web.config, то при настройке директивы Page будет заменена настройка из файла web.condfig. Таким образом, вы можете определить файл мастер-страницы, используемый по умолчанию (в файле web.config), перезаписывая имеющуюся настройку по умолчанию для определенных Web-страниц.

Изменить мастер-страницу можно и программным способом. Это позволит применять разные мастер-страницы для разных устройств или разных типов Web-браузеров. Последним местом, в котором может быть изменена мастер-страница, является метод обработчика Page PreInit. В следующем примере кода свойство MasterPageFile класса Page получает значение IE.master, если Web-браузер посылает строку MSIE с названием Web-браузера (это выполняет Web-браузер Microsoft Internet Explorer), или Default .master для всех других Web-браузеров:

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

void Page Load(object sender, EventArgs e)

void Page PreInit(object sender, EventArgs e) {

if (Request.UserAgent.Contains( MSIE )) {

this.MasterPageFile = ~/IE.master ;

else {

this.MasterPageFile = -/Default.master ;

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

Практическое аанятмв СоЗДЭНИе мастер-СТраниЦЫ

1. Откройте Web-сайт EventRegistrationWeb, который был создан в предыдущей главе.

2. Добавьте элемент Master Page (Мастер-страница), как показано на рис. 20.1, и присвойте ему имя EventRegistration .master.

3. Удалите из мастер-страницы заполнитель ContentPlaceHolder, который был создан автоматически.



1 ... 209 210 211 [ 212 ] 213 214 215 ... 396

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