Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
ASP.NET, C#, WebForms Ситуация такова... На сайте может быть несколько групп страниц. Каждая группа страниц имеет свой MasterPage. Можно ли как-то определить на уровне MasterPage, какая тема оформления будет использоваться ? Возможно я сумбурно изложил проблему, но.. как получилось. Ниже немного прокомментирую, о чем речь... Для сайта создается файл скина MyTheme.skin (в моем случае их может быть несколько). Я знаю как подключить конкретный скин к конкретной странице <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Theme="MyTheme" %> Я знаю как подключить конкретный скин для всего сайта <system.web> <pages theme="MyTheme" /> <authentication mode="Windows"/> </system.web> А как это сделать через MasterPage для группы страниц... нифига не могу понять... Пишу как умею. Дорого, долго... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 09:11 |
|
||
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
olegov, 1) создаем класс BaseMasterPage который будет служить базовым классом для master страниц Код: c# 1. 2. 3. 4. 2) создаем класс BasePage который будет служить базовым классом для страниц Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 3) Создаем темы, страницы и master страницы. Для страниц меняем базовый класс на BasePage, для master страниц на BaseMasterPage 4) Указываем в @-директиве master страниц атрибут Theme с нужным значением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 11:48 |
|
||
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
Если у группы своя тема и своя мастер страница, то можно и так сделать: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 13:37 |
|
||
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
Обзываем тему и мастер-страницу именем группы и кладём в отдельную папку, например: App_MasterPages/MyGroup.master. Как предложил bazil, создаем класс BasePage который будет служить базовым классом для страниц: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. Хотя это получается с другого конца ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 13:46 |
|
||
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
P.S.: почему кстати зачастую подписываются на событие PreInit += OnPreInit, вместо переопределения метода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 13:47 |
|
||
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
skyANA, мне это кажется более логичным когда класс преднаназчен для наследования т.к. дает возможность сделать обработчик private. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 18:15 |
|
||
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
bazileskyANA, мне это кажется более логичным когда класс преднаназчен для наследования т.к. дает возможность сделать обработчик private.Ну получим не protected, а private, а толку? Наследник по прежнему может вызвать метод, если он вызовет метод, то будет инициализировано событие и выполнится код обработчика. Если же наследник переопределит метод так, что в нём не будет base.OnPreInit(e), то не будет вызываться ни мой код, ни Ваш, т.к. не будет событие инициализироваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 18:53 |
|
||
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
skyANAP.S.: почему кстати зачастую подписываются на событие PreInit += OnPreInit, вместо переопределения метода? на события подписываются вместо переопределения метода для снижения связности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 19:15 |
|
||
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
skyANAНу получим не protected, а private, а толку? Толк в том что этот метод не будет виден наследнику. В любом случае он не предназначен для прямого вызова. skyANAНаследник по прежнему может вызвать метод, если он вызовет метод, то будет инициализировано событие и выполнится код обработчика. Не понял о каком методе идет речь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 20:33 |
|
||
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
bazile, речь о методе OnPreInit Ну и о других методах жизненного цикла страницы. Они есть, они protected, и их можно переопределить в BasePage. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 22:55 |
|
||
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
ИзопропилskyANAP.S.: почему кстати зачастую подписываются на событие PreInit += OnPreInit, вместо переопределения метода? на события подписываются вместо переопределения метода для снижения связностиНе понял. Как наличие обработчика события внутри класса уменьшает связность? Намёк на то, что сей код надо вынести в другое место? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 23:01 |
|
||
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
skyANAКак наличие обработчика события внутри класса уменьшает связность? позволяет не трогать иерархию наследования, я ж об общем случае, разных событий много, вавилонскую башню строить? skyANAНамёк на то, что сей код надо вынести в другое место? может быть вынесен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 23:29 |
|
||
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
Изопропиля ж об общем случаеПонятно. А я наоборот о конкретном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2014, 00:08 |
|
||
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
skyANAречь о методе OnPreInit Меня смутило то что ты сразу после private метода стал говорить про вызов и поэтому пришлось уточнить. Использование явной подписки и private метода не дает никакого серьезного выигрыша. Функциональность с точки зрения наследников тоже будет одинаковой. Я предпочитаю использование явной подписки в базовых классах по соображениям красоты - как я её понимаю :). Считаю что в базовом классе protected члены следует объявлять только когда они будут (могут) использоваться наследником. В целом я не против использования Page_PreInit или override OnPreInit методов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2014, 00:40 |
|
||
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
Спасибо ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2014, 11:28 |
|
||
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
Эм... только не понял, в чем смысл тогда всего этого, если так и так, что для мастерпейдж, что ДЛЯ КАЖДОЙ СТРАНИЦЫ нужно вносить ручные изменения (переназначать базовый класс) ? Для каждой страницы я и так могу указать Тему, без выкрутасов с подменой базового класса :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2014, 11:44 |
|
||
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
olegov, а чем Вам решение тов. bazile не подходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2014, 13:27 |
|
||
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
skyANAolegov, а чем Вам решение тов. bazile не подходит? Я не вижу в этом смысла. Если бы это решалось на уровне только мастерпейдж и не требовали, в дальнейшем, никаких действий над страницами, использующими этот мастерпейдж, то - да, но, в этом решении, так и так, необходимо вносить изменения в код каждой страницы (речь идет о создании страниц Visual Studio в реджиме дизафнера). Что мне тогда мешает, просто добавить в заголов страницы Theme="MyTheme" ? Да же, в таком случае, телодвижений меньше получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 11:12 |
|
||
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
olegov, ну не хотите как хотите. Завтра Вас попросят сменить тему для группы страниц и Вы вспомните о "телодвижений меньше получается" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 11:20 |
|
||
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
skyANA, Так я и изменю лишь описания в файлах указанной темы :) В чем проблема ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2014, 20:14 |
|
||
|
Как установить тему оформления на уровне MasterPage
|
|||
|---|---|---|---|
|
#18+
olegovskyANA, Так я и изменю лишь описания в файлах указанной темы :) В чем проблема ?Я не знаю, что такое "описания в файлах указанной темы". Если понадобится одну группу переключить с ThemeOne на ThemeTwo, то в Вашем случае надо будет всем страницам группы явно прописывать ThemeOne. Если использовать решение тов. bazile, то только в одном месте изменить: в MasterPage для данной группы. Выбирайте сами, что Вас больше устраивает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2014, 20:22 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38629898&tid=1357369]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
30ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 334ms |

| 0 / 0 |
