通过按钮动态更改网站主题
本文关键字:网站 按钮 动态 | 更新日期: 2023-09-27 18:36:20
我一直在学习一些 asp.net,并且我一直对整个动态主题更改有问题,我一直在关注一本书,该书教如何通过下拉菜单进行操作,但我想挑战自己并使用按钮来做到这一点。
我的网站有 2 个主题,因此,代表每个主题的两个按钮(橙色新鲜和绿色新鲜),这是我的母版页代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class mpage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string selectedTheme = Page.Theme;
HttpCookie webtheme = Request.Cookies.Get("webtheme");
if (webtheme != null)
{
selectedTheme = webtheme.Value;
}
}
}
protected void orangefresh_Click(object sender, EventArgs e)
{
HttpCookie webtheme = new HttpCookie("webtheme");
webtheme.Expires = DateTime.Now.AddMonths(3);
webtheme.Value = "orangefresh";
Response.Cookies.Add(webtheme);
Response.Redirect(Request.Url.ToString());
}
protected void greenfresh_Click(object sender, EventArgs e)
{
HttpCookie webtheme = new HttpCookie("webtheme");
webtheme.Expires = DateTime.Now.AddMonths(3);
webtheme.Value = "greenfresh";
Response.Cookies.Add(webtheme);
Response.Redirect(Request.Url.ToString());
}
}
这是我的基本页面:
using System;
using System.Web;
public class BasePage : System.Web.UI.Page
{
private void Page_PreInit(object sender, EventArgs e)
{
HttpCookie webtheme = Request.Cookies.Get("webtheme");
if (webtheme != null)
{
Page.Theme = webtheme.Value;
}
}
public BasePage()
{
this.PreInit += new EventHandler(Page_PreInit);
}
}
鉴于我没有使用 cookie 的经验,我决定从头开始查看代码,我测试了 Click 事件是否在 cookie 上存储值,我在网站上创建了一个标签并给出了它的 .文本属性 cookie 的 .价值,什么也没发生。所以我开始删除代码以查看是什么阻止了事件,我发现这一行......
Response.Redirect(Request.Url.ToString());
。对此负责。只是为了它,我删除了那一行并再次测试了我的网站,但主题仍然没有变化。
任何帮助将不胜感激。
检查下面的链接
http://www.codeproject.com/Articles/18300/How-to-change-page-theme-in-asp-net-2-0-dynamicall
固定。我忘了进行更改,以便我在继承的 BasePage 中测试的页面......它继承了默认页面。
一切正常..
您的主题可能存在问题。在页面级别检查它们(正如杜安所说!!试试这个..
<%@ Page Title="" Language="C#" MasterPageFile="~/mpage.master" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="index" Theme="orangefresh"%>