Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программная работа с темами, как их динамически менять на сайте. 
:(
    Опции темы
thomas
Дата 18.9.2008, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: нет
Всего: 65



Привествую всех.

Вот возник вопрос:
имеем сайтик созданный с использованием ASP.NET, в проекте имеются несколько тем.
Так вот, как сделать так что бы посетитель сайта мог сам выбирать себе тему?

Обьясните на пальцах, как сиё делаеться.

Заранее спасибо.


ЗЫ Вот этот кусок лекции 
Цитата

Программная работа с темами

Как и шаблоны, темы можно назначать не позднее события PreInit:

protected void Page_PreInit(object sender, System.EventArgs e)
{
      Page.Theme = Request.QueryString["ThemeChange"];
}


от сюда ничего толком не объясняет. 


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
Idsa
Дата 19.9.2008, 05:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



В Page.Theme нужно задать строку, совпадающую с именем одной из тем из App_Themes. А уж как ее передавать: через строку запроса (как в примере), через ViewState или еще как - выбор за Вами.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
thomas
Дата 19.9.2008, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: нет
Всего: 65



Idsa, 
Приветствую.
А поподробнее, на пальцах.
А то туп с годами становлюсь, на лету не подхватываю.

ЗЫ Сейчас тему задаю в файле web.config вписывая атрибут в <pages 


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
Idsa
Дата 19.9.2008, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Цитата(thomas @  19.9.2008,  17:41 Найти цитируемый пост)
ЗЫ Сейчас тему задаю в файле web.config вписывая атрибут в <pages 

Сейчас Вы указываете в pages theme="theme1", где theme1 - подкаталог в каталоге App_Themes в Вашем проекте. Допустим в App_Themes есть еще один подкаталог - theme2. Тогда можно указать theme="theme2". Аналогично присвоение происходит и в PreInit:
Код

Page.Theme = "theme1";
или
Page.Theme = "theme2";



--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
wotker
Дата 19.9.2008, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 18.7.2006
Где: Ростов-на-Дону

Репутация: 1
Всего: 5



Цитата

через строку запроса (как в примере), через ViewState или еще как - выбор за Вами.

на мой взгляд передавать информацию о глабольных настройках в viewstate (или строке запроса) для реальных сайтов не годится. Лучше в сессии наверное.
--------------------
ICQ ::            347306684e-mail ::         wotker[at]rambler[dot]ru 
PM MAIL ICQ   Вверх
Idsa
Дата 19.9.2008, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Цитата(wotker @  19.9.2008,  20:41 Найти цитируемый пост)
на мой взгляд передавать информацию о глабольных настройках в viewstate (или строке запроса) для реальных сайтов не годится. Лучше в сессии наверное. 

Это я так, для примера. Вообще лучше всего хранить такие настройки в профиле (в стандартном либо в самописном).


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
thomas
Дата 21.9.2008, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: нет
Всего: 65



wotker, 
Idsa, 
спасибо за отклики конечно.

Но все же, обьясните конкретно "на пальцах", 
что, где и как прописывать чтобы юзверь мог менять тему сайта, например нажав на кнопочку.

Заранее спасибо от "туповатого" студента  smile 


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
Idsa
Дата 21.9.2008, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Приведу простой пример.
Создаем WebApplication, добавляем в разметку DropDownList, а в codebehind - обработчик Page_PreInit:
Код

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication14._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:DropDownList ID="ThemesDropDownList" runat="server">
        <asp:ListItem>Theme1</asp:ListItem>
        <asp:ListItem>Theme2</asp:ListItem>
      </asp:DropDownList>
    </div>
    </form>
</body>
</html>

Код

public partial class _Default : System.Web.UI.Page
  {
    protected void Page_PreInit(object sender, EventArgs e)
    {
      this.Theme = this.ThemesDropDownList.SelectedValue;
    }

    protected void Page_Load(object sender, EventArgs e)
    {

    }
  }

Естественно, в папке App_Themes должны быть подпапки, соответствующие названиям тем, хранящимся в списке ThemesDropDownList.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0482 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.