Цель лекции: изучить возможности использования тем при создании Web-приложения, рассмотреть конкретные примеры их создания, научиться организовывать совместное использование тем и каскадных таблиц стилей в Web-приложении ASP.NET.
В одной из предыдущих лекций, посвященной мастер-страницам, рассматривались вопросы
ASP.NET содержит специфические средства, способные значительно упростить процесс централизованного оформления всех или определенных страниц Web-приложения. Это средство называется
Не секрет, что при разработке интернет-приложения достаточно большое внимание необходимо уделять его дизайну. Хорошо продуманный дизайн способствует повышению эффективности, простоте и удобству работы с ним пользователей. При этом дизайн всех страниц приложения должен быть единообразным, что фактически означает необходимость
В данной же лекции речь пойдет об использовании присущего только ASP.NET средства оформления содержимого интернет-приложений -
Каждому приложению может соответствовать специфическая
Как уже упоминалось ранее, в ASP.NET существует специальная папка для хранения Арр_Theme, находящийся в корневом каталоге Web-приложения. В случае, если приложение содержит определение для нескольких .skin. Он представляет собой текстовый файл, содержащий определения для элементов управления приложения.
Фактически файл оформления содержит список дескрипторов элементов управления, похожих на описание самих элементов управления в коде страницы aspx, однако, в отличие от самих элементов, дескрипторы могут описывать лишь часть свойств элемента управления, значения которых необходимо установить. Например, наиболее типичным описанием для файла оформления является определение цвета фона или цвета переднего плана элемента управления. В этом случае достаточно задать значения свойств BackColor или ForeColor соответственно. Таким образом, для элемента управления TextBox строка описания файла оформления может выглядеть следующим образом:
<asp:TextBox runat="server" forecolor="blue" backcolor= "lightsteelblue"/>
Из примера можно заметить, что, в отличие от описания элемента управления страницы в файле оформления, атрибут id для элемента управления не применяется. Точнее, он может использоваться для однозначной идентификации элемента управления, которому соответствует данное описание, а может и не использоваться, в случае, когда необходимо создать описание, присущее всем элементам управления данного класса.
Для добавления
Арр_Themes в том случае, если он еще не создан, и внутри каталога создать подкаталог с example1.Для выполнения этих операций достаточно выполнить команду главного меню WebSite $$\Rightarrow$$ Add New Item, в открывшемся окне выбрать , нажать OK. Visual Studio предупредит о том, что создаваемый файл оформления будет помещен в папку Арр_Themes, и спросит, хотите ли вы добавить ее в проект в том случае, если она не существует.
(рис 8.1) Файл темы, добавленный в проектTextBox приведен выше).web.config, в котором определить pages. В этом случае DOCUMENT в окне свойств страницы и ввести в свойство Theme имя Page данной страницы.<pages theme="example1"></pages>
При задании
Таким образом,
(рис 8.2) Пример использования темыКак уже было сказано ранее, настройки элемента управления, указанные в
Иногда желательно, чтобы Theme использовать атрибут styleSheetTheme в директиве pages файла Web.config либо объекта DOCUMENT страницы.
Конечно, одним из важнейших свойств EnableTheming элемента управления равным false. В этом случае при обработке данного элемента управления никакие
Если же необходимо, чтобы
SkinID, для которого установить значение, однозначно определяющее оформление данного элемента управления. Например, для кнопки можно установить следующий параметр:SkinID: <asp:Button SkinID="RedButton" runat="server" Font-Bold="True" ForeColor="Red" />
SkinID элемента управления равным значению SkinID описания оформления элемента управления На рис 8.3 показан внешний вид элемента управления Button при установленном свойстве SkinID равным RedButton (справа) и при неустановленном свойстве SkinID (слева). Кроме того, в данном примере в качестве цвета фона элемента ввода e-mail указан PeachPuff, а в файле Web.config при определении styleSheetTheme, что привело к тому, что цвет фона элемента ввода e-mail отличается от цвета фона остальных элементов ввода данной страницы.
(рис 8.3) Пример подключения темы к странице Web-приложенияПри использовании данного механизма поведение
В ряде случаев неплохих результатов можно добиться, применяя комбинацию Themes и CSS. Такая комбинация может быть целесообразна в случае, когда необходимо создать оформление для серверных элементов управления и для HTML-элементов страниц, либо когда желательно использовать более стандартизованный подход к оформлению страниц, который может быть легко переносим с одной платформы на другую, либо когда уже существует оформление на базе CSS.
Для использования таблицы стилей в
<head> страницы, для которой определены стили, содержит директиву runat="server".Когда таблица стилей добавлена в runat="server" для включения обработки раздела <head> на стороне сервера при обращении к странице. Раздел <head> здесь используется потому, что при динамическом связывании таблицы стилей со страницей происходит то же, что и при статической связке: добавление ссылки на файл таблицы стилей именно в раздел <head>.
(рис 8.4) Добавление таблицы стилей к темеНапример, если добавить к рассматриваемому примеру таблицу стилей (рис 8.4) следующего содержания:
h1
{
font-weight: bold;
color: teal;
font-family: Verdana;
}
то стиль заголовка "Регистрация пользователя" будет переопределен и отобразится, как показано на рис 8.5>.
(рис 8.5) Переопределение стиля заголовка темы с помощью cssВ ряде случаев нужно иметь возможность динамического изменения
Изменение Page.Theme. При этом мы должны помнить, что динамическое изменение Page.Init, в противном случае будет выдано сообщение об ошибке.
В качестве примера создадим возможность динамического изменения DropDownList, который будет автоматически заполняться списком существующих
Заполнение элемента DropDownList списком существующих Page Load ). Т. к. каждая
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
DirectoryInfo tDir = new DirectoryInfo(Server.MapPath(
"App_Themes"));
DropDownList2.DataTextField = "Name";
DropDownList2.DataSource = tDir.GetDirectories();
DropDownList2.DataBind();
if (Session["CurrentThemeIndex"] != null)
DropDownList2.SelectedIndex = (int)Session[
"CurrentThemeIndex"];
}
}
Класс DirectoryInfo содержит методы, необходимые для выполнения типичных операций над файлами и папками, таких как копирование, перемещение, переименование, создание и удаление.
В данном примере создается новый объект класса DirectoryInfo. С помощью метода GetDirectories() получается список всех подпапок текущей папки (в данном случае Арр_Themes ). Данный список представлен массивом строковых элементов, который затем посредством свойств DataSource и DataBind связывается с выпадающим списком.
Так как изменение оформления страницы требует инициации события postback и, как следствие, перезагрузки страницы, при которой должна измениться не только текущая Page_PreInit будет производиться чтение значения переменной состояния, содержащей имя
if (Session["CurrentThemeIndex"] != null) DropDownList2.SelectedIndex = (int)Session["Current ThemeIndex"];
расположенное в событии Page_Load, необходимо для установки текущего значения выпадающего списка после перезагрузки страницы.
Исходный код события Page_PreInit выглядит следующим образом:
protected void Page_PreInit(object sender, EventArgs e)
{
if (Session["CurrentTheme"] == null)
{
Page.Theme = "";
}
else
{
Page.Theme = (string)Session["CurrentTheme"];
}
}
Исходный код нажатия на кнопку "Применить" выглядит следующим образом:
protected void Button3_Click(object sender, EventArgs e)
{
Session["CurrentTheme"] = DropDownList2.SelectedValue;
Session["CurrentThemeIndex"] = DropDownList2.SelectedIndex;
Server.Transfer(Request.FilePath);
}
В результате работы приложения при выборе
(рис 8.6) Динамическое изменение активной темы приложенияКак уже отмечалось ранее, при разработке сложных Web-приложений вопросы создания эффективного дизайна и навигации являются чрезвычайно важными, от их решения во многом зависят удобства пользователей. ASP.NET наряду с другими возможностями и страниц приложения предлагает разработчикам средство создания единообразного оформления содержания страниц приложения с использованием
ASP.NET поддерживает определение нескольких
Это еще одно отличие
Все App_Themes.
В ряде случае целесообразно использовать совместно
Существует возможность динамического изменения
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.