Существует множество способов изменения скинов. Самый простой вариант — переключить CSS страницы, а CSS обычно записывается во внешнем файле CSS. Тогда переключение css фактически меняет путь ссылки href в html. Я искал в Интернете. Обычно есть два способа:
1. Поместить на страницу элемент управления-держатель. Затем программно напишите ссылку css стиля текущего пользователя на страницу.
2. Установите стили CSS для каждого элемента управления с помощью механизма отражения.
Два вышеперечисленных метода довольно хлопотны.
Первый требует размещения элемента управления держателем на каждой странице. Аналогичный подход заключается в добавлении runat=server в тег ссылки. Если страниц слишком много, это будет сложнее.
Второе рассматривать не стоит. Существует множество проблем с эффективностью программирования производительности.
Я помню, что когда я изучал DNN, я нашел способ изменить адрес действия по умолчанию в форме. Пожалуйста, обратитесь к нему напрямую. неплохо:
Непосредственно переопределить событие Render
защищенное переопределение void Render (писатель System.Web.UI.HtmlTextWriter)
{
StringWriter sw = новый StringWriter();
HtmlTextWriter htmlWriter = новый HtmlTextWriter(sw);
base.Render(htmlWriter);
//Стиль CSS, выбранный текущим пользователем
string css = "<link href="css url" rel="таблица стилей" type="text/css">" ;
string html = sw.ToString() ;
int startPoint = html.IndexOf("</head>", StringComparison.CurrentCultureIgnoreCase);
если (начальная точка > 0)
{
html = html.Insert(startPoint, css);
}
Writer.Write(html);
}
Поместите это в базовый класс PageBase каждой страницы. Это было бы гораздо удобнее.
Конечно, если вы не хотите, чтобы каждая страница наследовала собственный базовый класс, вы также можете написать его в HttpModule. Это также очень удобно.
Напишите это в одном месте, и оно будет полезно для каждой страницы.
http://www.cnblogs.com/kwklover/archive/2007/01/03/610822.html