"Во всех пустяковых делах важен стиль.
Во всех серьезных делах — тоже."
Оскар Уайльд
Внешний вид сайта очень важен. А он состоит из внешнего вида отдельных элементов. Но нам пришлось бы тяжело, если бы не было иного способа добиться единого оформления страниц, кроме как назначая свойства, связанные с внешним видом, для всех элементов по отдельности. Но, к счастью, создатели ASP .NET позаботились об этом, создав функционал
По умолчанию стиль элементов ASP .NET очень простой — черные буквы на белом фоне. Чтобы добиться красивых дизайнерских эффектов, можно использовать те же способы, что и при дизайне HTML-страниц. Например, форматировать текст с помощью тегов <i>, <b> и так далее. Но так будет трудно сохранить единое стилевое решение на всех страницах большого сайта. Настройка шрифтов с помощью тега <font> тоже считается устаревшей. Повсеместно применяются
CSS (Cascading Style Sheets, каскадные таблицы стилей) — это набор параметров форматирования, который применяется к элементам web-страницы для управления их видом и положением.
CSS — важная составная часть
При использовании <LINK>. Если определить класс в заголовке через тег <style> или внешний файл, то стиль элемента управления легко можно поменять через свойство CssClass.
В Visual Studio 2005 есть Style Builder, с помощью которого можно легко создать желаемый стиль. С ним удобно работать даже новичкам.
Стили можно разрабатывать как для конкретного элемента, так и создавать для последующего использования. В режиме Design выберите элемент управления и из контекстного меню выберите Style.
(рис 13.1) Перейдите в режим исходного текста и увидите, что все изменения зафиксированы в атрибуте style. Например:
style="color: navy; font-style: italic; cursor: crosshair;"
Тут определено не только, как выглядит элемент управления, но и форма курсора мыши, которое он принимает, когда находится над элементом. Это свойство можно изменить на вкладке Others.
Свойство style имеет преимущество перед стилями, заданными любым другим образом — через внешние файлы или с помощью
<asp:BulletedList ID="BulletedList1" runat="server"
DataSourceID="SiteMapDataSource1"
DataTextField="Title" DataValueField="Url" Style="back-
ground-color:Cornsilk ; text-align: right;"
DisplayMode="HyperLink" CssClass="bulletedlist"
BackColor="Fuchsia" ForeColor="#804040">
</asp:BulletedList>
Цвет фона списка — Cornsilk, а цвет текста определяется свойством ForeColor, так как в стиле он не определен.
Но если настраивать все элементы индивидуально и все по-разному, может получиться стилевой разнобой, похожий на сайт Васи Пупкина. Правильнее всего разработать единый стиль, а индивидуальные настройки применять в отдельных случаях.
Стили, как правило, хранятся в одном или нескольких внешних файлах, ссылка на которые прописана во всех документах сайта, или хранятся вместе с
Для того, чтобы создать определение стиля во внешнем файле, добавьте в проект новый файл. В диалоге "Новый файл" выберите тип файла StyleSheet. По умолчанию он называется StyleSheet.css.
Элементы стиля можно определять и с помощью возможности IntelliSense. Вставьте курсор внутри фигурных скобок и нажмите на Enter. Появляется выпадающее меню со списком всех возможных атрибутов стиля.
(рис 13.2) Выберите, например, background-color (цвет фона) и поставьте двоеточие. IntelliSense предложит список возможных значений этого атрибута. Цвета можно выбрать абсолютные либо из палитры текущей
Стили можно определить и комбинируя несколько селекторов:
H1, H2, P, lection{
color: Olive;
}
Цвета задаются или указанием названия цвета, или его числовым значением RGB, при этом перед ним надо ставить знак #. Например, #f0fff0.
Стили можно создавать тремя способами:
В этом тоже поможет диалоговое окно (контекстное меню, пункт Add Style Rule).
(рис 13.3) Готовый файл стиля можно назначить странице через окно свойств. Выберите DOCUMENT из верхнего списка и назначьте свойство StyleSheet. В поле этого свойства должна быть кнопка с многоточием. Нажатие на эту кнопку приводит к диалогу, где можно выбрать любой из имеющихся в проекте файлов стилей. В код страницы автоматически добавится нужное определение:
<link href="StyleSheet.css" rel="stylesheet" type="text/css" />
Файл можно и просто перетащить из Solution Explorer.
Например, определен стиль для класса стиля textfield:
.textfield {
border: 1px solid #929292;
vertical-align: middle;
padding: 3px;
margin: 2px 0 5px 0;
}
На страницах он применяется к элементам управления с помощью свойства CssClass:
<asp:TextBox ID="TextBox1" Runat="server" Width="200" Text="" CssClass="textfield" />
С помощью каскадных таблиц стилей можно не только изменять внешний вид страниц, но и создавать слои. Верстка с помощью слоев приобретает все больше поклонников. Слой — это элемент <DIV> или <SPAN>, к которому добавляются параметры для изменения абсолютного или относительного положения на странице. Площадь, занимаемая разными слоями, может перекрываться. Параметр z-index определяет
В этом примере с помощью определения стиля создается элемент с фиксированным заголовком. Иногда удобно не переходить со страницы на страницу, а прокручивать записи. Вспомним, что элемент управления Panel позволял это делать. Поэтому попробуем использовать и Panel совместно:
<style type="text/css">
.TableHeader
{
border-width: 2px;
border-color: Black;
background-color: #990000;
color: white;
font-weight: bold;
position: relative;
top:
expression(this.parentNode.parentNode.parentNode.scrollTop-1);
}
</style>
Вставьте в форму следующий код:
<br />
<asp:Panel ID="Panel1" runat="server" Height="327px"
Width="566px" ScrollBars="Auto">
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="True" DataSourceID="SqlDataSource1"
EmptyDataText="There are no data records to display."
Height="165px" Width="548px">
<HeaderStyle CssClass="TableHeader" />
</asp:GridView>
</asp:Panel>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:pubsConnectionString1 %>"
ProviderName="<%$
ConnectionStrings:pubsConnectionString1.ProviderName %>"
SelectCommand="SELECT * FROM [authors]">
</asp:SqlDataSource>
У элемента Panel1 устанавливается свойство ScrollBars="Auto" и в него помещается . Стиль, который применен для заголовка, задает относительное положение данного класса у верхней границы панели. При генерации HTML-кода для заголовка генерируются теги <th>, которые вложены в <tr>, вложенные свою очередь в <table>. <table> находится в <div>, в который отображается Panel1. Следовательно, чтобы добраться до этого тега, надо 3 раза обратиться к родителю.
В интерфейсе почтовой службы Rambler дизайн страниц меняется в зависимости от времени года. Пользователь может сам выбрать себе вариант дизайна. Подобной функциональности в ASP .NET можно добиться с помощью
Calendar таким свойством является DayNameFormat. CSS никак не позволяет оперировать такими свойствами.
Файлы
Каждая
Theme директивы Page. PreInit:
protected void Page_PreInit(object sender, EventArgs e)
{
Page.Theme = "Black";
}
<configuration> <system.web> <pages theme=" Black " /> </system.web> </configuration>
Если EnableTheming в False.
Если нужно отменить применение Panel и установить его свойство EnableTheming в False.
Свойство EnableTheming можно менять и на уровне страницы:
<%@ Page Language="C#" AutoEventWireup="true" EnableTheming="False"%>
Атрибут StylesheetTheme работает так же, как и Theme. Но если
В файлах
, Image, .
Можно создать столько файлов шкурок, сколько необходимо. Для удобства и ясности можно создать файлы
Создайте в папке App_Themes
Описание стиля элемента управления похоже на описание на странице, с тем отличием, что атрибут ControlId не указывается. Однако необходимо указать атрибут runat="server":
<asp:Calendar runat="server" BackColor="Honeydew" BorderColor="Teal" BorderWidth="1px" CellPadding="1" DayNameFormat="Shortest" Font-Names="Verdana" Font-Size="8pt" ForeColor="DarkSlateGray" Height="200px" Width="220px"> <SelectedDayStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" /> <SelectorStyle BackColor="#99CCCC" ForeColor="#336666" /> <WeekendDayStyle BackColor="#C0FFC0" /> <OtherMonthDayStyle ForeColor="#999999" /> <TodayDayStyle BackColor="#99CCCC" ForeColor="White" /> <NextPrevStyle Font-Size="8pt" ForeColor="#CCCCFF" /> <DayHeaderStyle BackColor="#80FF80" ForeColor="#336666" Height="1px" /> <TitleStyle BackColor="Green" BorderColor="#3366CC" BorderWidth="1px" Font-Bold="True" Font-Size="10pt" ForeColor="White" Height="25px" /> </asp:Calendar>
Теперь на всех страницах, где установлена
(рис 13.4) У описания шкурки может быть описан атрибут SkinId. SkinID называется именованным SkinId совпадает со SkinId описания:
<asp:Label Runat="server" SkinId="June" ForeColor="Teal" Font-Names="Verdana" Font-Size="X-Small" />
При этом, если у элемента не определен SkinId, применяется SkinId тоже отсутствует (
Определим еще один именованный
<asp:Calendar runat="server" SkinId="June" BackColor="#C0FFC0" BorderColor="Teal" BorderWidth="1px" CellPadding="1" DayNameFormat="Shortest" Font-Names="Verdana" Font-Size="8pt" ForeColor="DarkSlateGray" Height="200px" Width="220px"> <SelectedDayStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" /> <SelectorStyle BackColor="#99CCCC" ForeColor="#336666" /> <WeekendDayStyle BackColor="#C0FFC0" /> <OtherMonthDayStyle ForeColor="#999999" /> <TodayDayStyle BackColor="#99CCCC" ForeColor="White" /> <NextPrevStyle Font-Size="8pt" ForeColor="#CCCCFF" /> <DayHeaderStyle BackColor="#C0FFC0" ForeColor="#FF8000" Height="1px" /> <TitleStyle BackColor="Green" BorderColor="#3366CC" BorderWidth="1px" Font-Bold="True" Font-Size="10pt" ForeColor="White" Height="25px" /> </asp:Calendar>
При отображении приведенной ниже страницы в браузере пользователя, первый
календарь будет отображаться с использованием именованного
<form id="form1" runat="server">
<div>
<table>
<tr>
<td style="width: 100px">
<asp:Calendar ID="Calendar1" runat="server"
VisibleDate="2006-06-01" SkinID="June"></asp:Calendar>
</td>
<td style="width: 100px">
<asp:Calendar ID="Calendar2" runat="server"
VisibleDate="2006-07-01"></asp:Calendar>
</td>
</tr>
</table>
</div>
</form>
Некоторые свойства элементов управления не могут быть изменены в файлах ID и EnableViewState, помечены как запрещенные к установке в файлах CommandName класса Button, AllowPaging, DataSource класса и т.д. Словом, если свойство влияет не на внешний вид, а на поведение элемента управления, или строго индивидуально, — скорее всего его нельзя будет изменить. Это определяется разработчиком элемента управления с помощью атрибута ThemeableAttribute. Этим атрибутом можно пользоваться и создавая собственные элементы управления. Атрибут ThemeableAttribute может быть применен и к классу для обозначения поддержки
данным контролом настройки своих параметров через Control определен с атрибутом Themeable Attribute=False, и все классы — непосредственные наследники Control не допускают настройки свойств через файлы .Literal, Repeater, , Xml и другие. Хотя класс WebControl наследует Control, он помечен атрибутом Themeable=True, и это распространяется и на его наследников, каковым являются большинство элементов управления.
Содержание страниц не ограничивается только выводом элементов управления. Например, текст может выводиться вне элемента Label. Файлы каскадных таблиц стилей тоже могут находиться в папке
body
{
font-size: x-small;
font-family: Verdana;
color: #004000;
background-color: #F0FFF0;
}
Установка стиля в файле css относится ко всему тексту страницы, в том числе к элементам Repeater и Literal. При этом если в каком-нибудь элементе явно установить шрифт, эти установки переопределят установки из css.
В папки с
<asp:ImageButton Runat="server" ImageUrl="Images/button- import.gif" SkinID="import" /> <asp:imagebutton runat="server" Imageurl="Images/button-login.gif" skinid="login" />
Как и шаблоны, PreInit:
protected void Page_PreInit(object sender, System.EventArgs e)
{
Page.Theme = Request.QueryString["ThemeChange"];
}
Применение
"Во всех пустяковых делах важен стиль.
Во всех серьезных делах — тоже."
Оскар Уайльд
Внешний вид сайта очень важен. А он состоит из внешнего вида отдельных элементов. Но нам пришлось бы тяжело, если бы не было иного способа добиться единого оформления страниц, кроме как назначая свойства, связанные с внешним видом, для всех элементов по отдельности. Но, к счастью, создатели ASP .NET позаботились об этом, создав функционал
По умолчанию стиль элементов ASP .NET очень простой — черные буквы на белом фоне. Чтобы добиться красивых дизайнерских эффектов, можно использовать те же способы, что и при дизайне HTML-страниц. Например, форматировать текст с помощью тегов <i>, <b> и так далее. Но так будет трудно сохранить единое стилевое решение на всех страницах большого сайта. Настройка шрифтов с помощью тега <font> тоже считается устаревшей. Повсеместно применяются
CSS (Cascading Style Sheets, каскадные таблицы стилей) — это набор параметров форматирования, который применяется к элементам web-страницы для управления их видом и положением.
CSS — важная составная часть
При использовании <LINK>. Если определить класс в заголовке через тег <style> или внешний файл, то стиль элемента управления легко можно поменять через свойство CssClass.
В Visual Studio 2005 есть Style Builder, с помощью которого можно легко создать желаемый стиль. С ним удобно работать даже новичкам.
Стили можно разрабатывать как для конкретного элемента, так и создавать для последующего использования. В режиме Design выберите элемент управления и из контекстного меню выберите Style.
(рис 13.1) Перейдите в режим исходного текста и увидите, что все изменения зафиксированы в атрибуте style. Например:
style="color: navy; font-style: italic; cursor: crosshair;"
Тут определено не только, как выглядит элемент управления, но и форма курсора мыши, которое он принимает, когда находится над элементом. Это свойство можно изменить на вкладке Others.
Свойство style имеет преимущество перед стилями, заданными любым другим образом — через внешние файлы или с помощью
<asp:BulletedList ID="BulletedList1" runat="server"
DataSourceID="SiteMapDataSource1"
DataTextField="Title" DataValueField="Url" Style="back-
ground-color:Cornsilk ; text-align: right;"
DisplayMode="HyperLink" CssClass="bulletedlist"
BackColor="Fuchsia" ForeColor="#804040">
</asp:BulletedList>
Цвет фона списка — Cornsilk, а цвет текста определяется свойством ForeColor, так как в стиле он не определен.
Но если настраивать все элементы индивидуально и все по-разному, может получиться стилевой разнобой, похожий на сайт Васи Пупкина. Правильнее всего разработать единый стиль, а индивидуальные настройки применять в отдельных случаях.
Стили, как правило, хранятся в одном или нескольких внешних файлах, ссылка на которые прописана во всех документах сайта, или хранятся вместе с
Для того, чтобы создать определение стиля во внешнем файле, добавьте в проект новый файл. В диалоге "Новый файл" выберите тип файла StyleSheet. По умолчанию он называется StyleSheet.css.
Элементы стиля можно определять и с помощью возможности IntelliSense. Вставьте курсор внутри фигурных скобок и нажмите на Enter. Появляется выпадающее меню со списком всех возможных атрибутов стиля.
(рис 13.2) Выберите, например, background-color (цвет фона) и поставьте двоеточие. IntelliSense предложит список возможных значений этого атрибута. Цвета можно выбрать абсолютные либо из палитры текущей
Стили можно определить и комбинируя несколько селекторов:
H1, H2, P, lection{
color: Olive;
}
Цвета задаются или указанием названия цвета, или его числовым значением RGB, при этом перед ним надо ставить знак #. Например, #f0fff0.
Стили можно создавать тремя способами:
В этом тоже поможет диалоговое окно (контекстное меню, пункт Add Style Rule).
(рис 13.3) Готовый файл стиля можно назначить странице через окно свойств. Выберите DOCUMENT из верхнего списка и назначьте свойство StyleSheet. В поле этого свойства должна быть кнопка с многоточием. Нажатие на эту кнопку приводит к диалогу, где можно выбрать любой из имеющихся в проекте файлов стилей. В код страницы автоматически добавится нужное определение:
<link href="StyleSheet.css" rel="stylesheet" type="text/css" />
Файл можно и просто перетащить из Solution Explorer.
Например, определен стиль для класса стиля textfield:
.textfield {
border: 1px solid #929292;
vertical-align: middle;
padding: 3px;
margin: 2px 0 5px 0;
}
На страницах он применяется к элементам управления с помощью свойства CssClass:
<asp:TextBox ID="TextBox1" Runat="server" Width="200" Text="" CssClass="textfield" />
С помощью каскадных таблиц стилей можно не только изменять внешний вид страниц, но и создавать слои. Верстка с помощью слоев приобретает все больше поклонников. Слой — это элемент <DIV> или <SPAN>, к которому добавляются параметры для изменения абсолютного или относительного положения на странице. Площадь, занимаемая разными слоями, может перекрываться. Параметр z-index определяет
В этом примере с помощью определения стиля создается элемент с фиксированным заголовком. Иногда удобно не переходить со страницы на страницу, а прокручивать записи. Вспомним, что элемент управления Panel позволял это делать. Поэтому попробуем использовать и Panel совместно:
<style type="text/css">
.TableHeader
{
border-width: 2px;
border-color: Black;
background-color: #990000;
color: white;
font-weight: bold;
position: relative;
top:
expression(this.parentNode.parentNode.parentNode.scrollTop-1);
}
</style>
Вставьте в форму следующий код:
<br />
<asp:Panel ID="Panel1" runat="server" Height="327px"
Width="566px" ScrollBars="Auto">
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="True" DataSourceID="SqlDataSource1"
EmptyDataText="There are no data records to display."
Height="165px" Width="548px">
<HeaderStyle CssClass="TableHeader" />
</asp:GridView>
</asp:Panel>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:pubsConnectionString1 %>"
ProviderName="<%$
ConnectionStrings:pubsConnectionString1.ProviderName %>"
SelectCommand="SELECT * FROM [authors]">
</asp:SqlDataSource>
У элемента Panel1 устанавливается свойство ScrollBars="Auto" и в него помещается . Стиль, который применен для заголовка, задает относительное положение данного класса у верхней границы панели. При генерации HTML-кода для заголовка генерируются теги <th>, которые вложены в <tr>, вложенные свою очередь в <table>. <table> находится в <div>, в который отображается Panel1. Следовательно, чтобы добраться до этого тега, надо 3 раза обратиться к родителю.
В интерфейсе почтовой службы Rambler дизайн страниц меняется в зависимости от времени года. Пользователь может сам выбрать себе вариант дизайна. Подобной функциональности в ASP .NET можно добиться с помощью
Calendar таким свойством является DayNameFormat. CSS никак не позволяет оперировать такими свойствами.
Файлы
Каждая
Theme директивы Page. PreInit:
protected void Page_PreInit(object sender, EventArgs e)
{
Page.Theme = "Black";
}
<configuration> <system.web> <pages theme=" Black " /> </system.web> </configuration>
Если EnableTheming в False.
Если нужно отменить применение Panel и установить его свойство EnableTheming в False.
Свойство EnableTheming можно менять и на уровне страницы:
<%@ Page Language="C#" AutoEventWireup="true" EnableTheming="False"%>
Атрибут StylesheetTheme работает так же, как и Theme. Но если
В файлах
, Image, .
Можно создать столько файлов шкурок, сколько необходимо. Для удобства и ясности можно создать файлы
Создайте в папке App_Themes
Описание стиля элемента управления похоже на описание на странице, с тем отличием, что атрибут ControlId не указывается. Однако необходимо указать атрибут runat="server":
<asp:Calendar runat="server" BackColor="Honeydew" BorderColor="Teal" BorderWidth="1px" CellPadding="1" DayNameFormat="Shortest" Font-Names="Verdana" Font-Size="8pt" ForeColor="DarkSlateGray" Height="200px" Width="220px"> <SelectedDayStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" /> <SelectorStyle BackColor="#99CCCC" ForeColor="#336666" /> <WeekendDayStyle BackColor="#C0FFC0" /> <OtherMonthDayStyle ForeColor="#999999" /> <TodayDayStyle BackColor="#99CCCC" ForeColor="White" /> <NextPrevStyle Font-Size="8pt" ForeColor="#CCCCFF" /> <DayHeaderStyle BackColor="#80FF80" ForeColor="#336666" Height="1px" /> <TitleStyle BackColor="Green" BorderColor="#3366CC" BorderWidth="1px" Font-Bold="True" Font-Size="10pt" ForeColor="White" Height="25px" /> </asp:Calendar>
Теперь на всех страницах, где установлена
(рис 13.4) У описания шкурки может быть описан атрибут SkinId. SkinID называется именованным SkinId совпадает со SkinId описания:
<asp:Label Runat="server" SkinId="June" ForeColor="Teal" Font-Names="Verdana" Font-Size="X-Small" />
При этом, если у элемента не определен SkinId, применяется SkinId тоже отсутствует (
Определим еще один именованный
<asp:Calendar runat="server" SkinId="June" BackColor="#C0FFC0" BorderColor="Teal" BorderWidth="1px" CellPadding="1" DayNameFormat="Shortest" Font-Names="Verdana" Font-Size="8pt" ForeColor="DarkSlateGray" Height="200px" Width="220px"> <SelectedDayStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" /> <SelectorStyle BackColor="#99CCCC" ForeColor="#336666" /> <WeekendDayStyle BackColor="#C0FFC0" /> <OtherMonthDayStyle ForeColor="#999999" /> <TodayDayStyle BackColor="#99CCCC" ForeColor="White" /> <NextPrevStyle Font-Size="8pt" ForeColor="#CCCCFF" /> <DayHeaderStyle BackColor="#C0FFC0" ForeColor="#FF8000" Height="1px" /> <TitleStyle BackColor="Green" BorderColor="#3366CC" BorderWidth="1px" Font-Bold="True" Font-Size="10pt" ForeColor="White" Height="25px" /> </asp:Calendar>
При отображении приведенной ниже страницы в браузере пользователя, первый
календарь будет отображаться с использованием именованного
<form id="form1" runat="server">
<div>
<table>
<tr>
<td style="width: 100px">
<asp:Calendar ID="Calendar1" runat="server"
VisibleDate="2006-06-01" SkinID="June"></asp:Calendar>
</td>
<td style="width: 100px">
<asp:Calendar ID="Calendar2" runat="server"
VisibleDate="2006-07-01"></asp:Calendar>
</td>
</tr>
</table>
</div>
</form>
Некоторые свойства элементов управления не могут быть изменены в файлах ID и EnableViewState, помечены как запрещенные к установке в файлах CommandName класса Button, AllowPaging, DataSource класса и т.д. Словом, если свойство влияет не на внешний вид, а на поведение элемента управления, или строго индивидуально, — скорее всего его нельзя будет изменить. Это определяется разработчиком элемента управления с помощью атрибута ThemeableAttribute. Этим атрибутом можно пользоваться и создавая собственные элементы управления. Атрибут ThemeableAttribute может быть применен и к классу для обозначения поддержки
данным контролом настройки своих параметров через Control определен с атрибутом Themeable Attribute=False, и все классы — непосредственные наследники Control не допускают настройки свойств через файлы .Literal, Repeater, , Xml и другие. Хотя класс WebControl наследует Control, он помечен атрибутом Themeable=True, и это распространяется и на его наследников, каковым являются большинство элементов управления.
Содержание страниц не ограничивается только выводом элементов управления. Например, текст может выводиться вне элемента Label. Файлы каскадных таблиц стилей тоже могут находиться в папке
body
{
font-size: x-small;
font-family: Verdana;
color: #004000;
background-color: #F0FFF0;
}
Установка стиля в файле css относится ко всему тексту страницы, в том числе к элементам Repeater и Literal. При этом если в каком-нибудь элементе явно установить шрифт, эти установки переопределят установки из css.
В папки с
<asp:ImageButton Runat="server" ImageUrl="Images/button- import.gif" SkinID="import" /> <asp:imagebutton runat="server" Imageurl="Images/button-login.gif" skinid="login" />
Как и шаблоны, PreInit:
protected void Page_PreInit(object sender, System.EventArgs e)
{
Page.Theme = Request.QueryString["ThemeChange"];
}
Применение
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.