Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Как установить цвет фона?


Автор: vlsaf 12.2.2008, 12:19
Народ, привет. Задачка такая.

При загрузке страницы нужно установить цвет фона.
Я его беру из базы по определенным условиям.

Для каждой группы юзеров цвет фона будет своим.

Как и где (PreLoad, PreInit) можно установить цвет фона?

Автор: tol05 12.2.2008, 12:44
в любом месте конвейера. Это клиентская настройка и на серверную обработку не влияет.
Влиять будут настройки css и тем (если они есть)... Они могут переопределить твои изменения (css - в браузере, тема - или в браузере (своим css), или в рендеринге - если тема настроечная)

Автор: vlsaf 12.2.2008, 19:37
Цитата(tol05 @ 12.2.2008,  12:44)
в любом месте конвейера. 

Можешь показать как это делать?

Автор: tol05 12.2.2008, 20:00
например так
Код

void Page_Load(object sender, EventArgs e)
    {
        Page.Form.Attributes["style"] = "background-color:Blue";        
    }

Автор: vlsaf 13.2.2008, 14:34
Да уж. Значит за  css последнее слово остается. Как там определено, так и будет.
Что то это мне не очень нравится. Хотелось бы, чтобы последнее слово было за мной smile
За моим определением цветового решения.

А что на счет Profile.
Там ничего нельзя ковырнуть?

Автор: Mymik 13.2.2008, 14:44
Цитата(vlsaf @  13.2.2008,  14:34 Найти цитируемый пост)
Хотелось бы, чтобы последнее слово было за мной smile

Вообще-то CSS ты назначаешь. Но если у тебя одна личность управляет за установку CSS, а другая за установку кода... хм. Да вам батенька надо поехать отдохнуть малех, да собрать свои личности воедино.


Цитата(vlsaf @  13.2.2008,  14:34 Найти цитируемый пост)
А что на счет Profile.
Там ничего нельзя ковырнуть? 

Там ты CSS Не настроишь smile но можно определить провайдер профайла и добавить там поле в виде ссылки на тему и впоследствии забирать эту тему из профайла.

Автор: tol05 13.2.2008, 17:13
а еще можно тупо открыть файл css в поток и reader-ом/writer-ом его поменять.
Подготовить, так сказать, подарок для браузера  smile 


P.S.

Цитата(Mymik @  13.2.2008,  13:44 Найти цитируемый пост)
Да вам батенька надо поехать отдохнуть малех, да собрать свои личности воедино.

мне тоже не помешало бы  smile 

Автор: vlsaf 27.2.2008, 19:31
Как сказать, что этот стиль для body ?

Код

void Page_Load(object sender, EventArgs e)
    {
        Page.Form.Attributes["style"] = "body {background-color:Blue;}";        
    }


не срабатывает.

Автор: Mymik 27.2.2008, 20:43
Код

void Page_Load(object sender, EventArgs e)
    {
        Page.Form.Attributes["style"] = "background-color:Blue;";        
    }

Ты задаешь стиль для конкретного элемента. В данном случаи нельзя задавать стили для коллекции элементов.

Автор: vlsaf 27.2.2008, 20:48
Что значит нельзя задавать стили для коллекции элементов ???


Я хочу установить фоновый цвет только для Body.
Ни о каких коллекциях речи не идет.

Если задается стиль, то возникает резонный вопрос. А для чего он применяется.
Для каких элементов на странице он будет актуален???
На страничке много чего есть.


Я хочу применить стиль именно  для Body и только.
Но не получается.

Автор: Mymik 27.2.2008, 20:54
Цитата(vlsaf @  27.2.2008,  20:48 Найти цитируемый пост)
С точностью до наоборот.
Я хочу установить фоновый цвет только для Body. Но не получается.
 Я говорил, что ты делал своим кодом.

А для того чтобы задать фон для body. Тебе нужно присвоить body какой-нибудь id и поставить атрибут runat="server" дальше ты можешь достучаться к этому элементу и назначить стиль для него.
Правда лучше делать все это через Style.Add() а то ты пожешь перетирать старые стили.

Автор: vlsaf 27.2.2008, 20:57
Как только я ставлю на мастер страницы

<body id="MyBody" runat="server">

то все панели на страницах становятся красными. С ошибками.

Так, что Body в качестве серверного элемента не очень то и подходит.

Оно и понятно. На странице может быть только одно Body.





Что же делать?????


Автор: Mymik 27.2.2008, 21:05
правильно денамически прикрутить стиль через 
Код

<id элемента>.Style.Add();


дальше думай сам и не "нукай"

Автор: vlsaf 27.2.2008, 21:09
Извини, если не так выражаюсь. 
Но проблема осталась.


Body в моем случае не может выступать в качестве серверного элемента управления.

............................................

Завтра попробую так

Код

Style s = new Style(); 
s.BackColor = System.Drawing.Color.Red; 
Page.Header.StyleSheet.CreateStyleRule(s, null, "BODY");

Автор: Mymik 28.2.2008, 09:23
Цитата(vlsaf @  27.2.2008,  21:09 Найти цитируемый пост)
Завтра попробую так

да, этот код работает.

Автор: vlsaf 28.2.2008, 10:53
Да, именно так и надо 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)