[英]How to set website theme to all webpages using a drop down list?
我正在嘗試使用主頁上的下拉列表來選擇和設置所有網頁的主題。 它為主頁設置它,但是當我轉到其他任何頁面時,它都沒有主題。 這是我的主頁代碼:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string selectedTheme = Page.Theme;
HttpCookie userSelectedTheme =
Request.Cookies.Get("UserSelectedTheme");
if (userSelectedTheme != null)
{
selectedTheme = userSelectedTheme.Value;
}
if (!string.IsNullOrEmpty(selectedTheme) &&
ddlSetTheme.Items.FindByValue(selectedTheme) != null)
{
ddlSetTheme.Items.FindByValue(selectedTheme).Selected =
true;
}
}
}
protected void ddlSetTheme_SelectedIndexChanged(object sender, EventArgs e)
{
HttpCookie userSelectedTheme = new
HttpCookie("UserSelectedTheme");
userSelectedTheme.Expires = DateTime.Now.AddMonths(6);
userSelectedTheme.Value = ddlSetTheme.SelectedValue;
Response.Cookies.Add(userSelectedTheme);
Response.Redirect(Request.Url.ToString());
}
private void Page_PreInit(object sender, EventArgs e)
{
HttpCookie setTheme = Request.Cookies.Get("UserSelectedTheme");
if (setTheme != null)
{
Page.Theme = setTheme.Value;
}
}
我認為我擁有的代碼僅足以將主題應用於一頁,那么如何將其應用於所有頁面?
默認情況下,您的HttpCookie的范圍是您所在的頁面。
如果要使其成為整個域,則需要將“路徑”設置為整個站點,可能是這樣的:
userSelectedTheme.Path = "/";
更多信息:
http://msdn.microsoft.com/zh-CN/library/system.web.httpcookie.path(v=vs.110).aspx
我要做的就是將preinit代碼放在其他頁面的代碼文件中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.