|
Программирование >> Программирование с использованием ajax
Расширенное программирование для 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, который был создан автоматически.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |