當前位置:首頁 > 科技 > 正文

如何改變asp.net動态頁面的主題

如何改變動态頁面的主題

{S0}簡介

這是一個簡單的代碼,可以用來在運行時改變頁面的主題。此代碼包含三個不同的方法來改變頁面的主題頁面。這段代碼的專業是第三種方法,quot;隻需改變單回傳頁面的主題。 背景

C#中,HTML,樣式表和Java腳本的基本知識是必需的。使用代碼

在第一,但我們可以說,我們可以很容易地實現編碼事件如下所示。

protected void Page_PreInit(object sender, EventArgs e)
{
       Page.Theme = "Black"; //default theme
}

但是,如果用戶要選擇從的主題,那麼問題的原因是是火災之前,其他事件。;在負載選定的主題,利用會議或靜态全局變量。無論是創建一個會話變量或靜态全局變量存儲在事件.nbsp選定的主題;使用.的刷新頁面或. .nbsp;;方法1:使用會話變量{C}方法2:使用全局靜态;

private static string theme;
 protected void Page_PreInit(object sender, EventArgs e)
 {
 if ((theme!= null) && (theme.Length != 0))
 {
 Page.Theme = theme;
 ddlTheme.Text = theme;
 }
 else
 {
 Page.Theme = "Black";
 }
 }
 protected void ddlTheme_SelectedIndexChanged(object sender, EventArgs e)
 {
 theme = ddlTheme.SelectedItem.Value;
 Server.Transfer(Request.FilePath);
 }

挑戰

現在有人給我做這個任務,而無需使用任何會話變量,全局靜态變量,也無需重新裝載網頁使用.的或.隻是意味着改變單一頁面回發的頁面主題是一個挑戰。{ A1}解決方案在負荷選定的主題,使用客戶端的。 創建一個函數,存儲在客戶端的選定的主題。調用此功能事件在客戶端side.nbsp的;;方法3:簡單地改變頁面的單回傳的頁面主題。

"form1" runat="server">
"0" cellpadding="0" cellspacing="0" style=width: 100%><tr><td><table><tr><td>Theme</td><tdwidth=6px></td><td><asp:DropDownListID="ddlTheme"AutoPostBack="true"onchange="javascript:SetTheme()"runat="server"><asp:ListItemSelected="True">Black</asp:ListItem><asp:ListItem>White</asp:ListItem></asp:DropDownList></td></tr></table></td></tr><tr><tdstyle="height:12px"></td></tr><tr><tdalign="center"><divstyle="text-justify: auto; text-align: justify; width:500px"> Dear Friends, This demo project shows, How to load Theme dynamically. The speciality of this page is "No Need to use any session, global variable and no need to send the new request to server only postback is required means no need to use Response.Redirect or Server.Transfer to same or other page". I simply store the selected theme in client cookie at client side by using javascript function and load newly selected theme on page preinit event at server side. Default theme is Black. </div></td></tr></table></div><scripttype="text/javascript"> function SetTheme() { document.cookie = "theme=" + document.getElementById('ddlTheme').value + ";"; } </script></form>

protected void Page_PreInit(object sender, EventArgs e)
 {
 if ((Request.Cookies["theme"] != null)
 && (Request.Cookies["theme"].Value.Length !=0))
 Page.Theme = Request.Cookies["theme"].Value;
 else
 Page.Theme = "Black";
 }

興趣點

我赢了,不重載頁面的使用.的這項任務或.和不使用會話或靜态全局變量也意味着簡單地改變page.單回傳網頁的主題是發射前的其他事件。無論是創建一個會話變量或靜态全局變量來存儲事件..或.選擇主題起着重要的作用,在第一兩個.Now我的挑戰,簡單地改變單一頁面回發的頁面主題。使用客戶端功能,存儲在客戶端的選定的主題和負載事件這個主題,這一事件将調用每.nbsp 事件的時間,所以沒有必要使用.的重載頁面,或僅.方法單回傳需要動态改變頁面的主題。;

版本1.0.0.0初始代碼,包括所有三個不同的方法頁面動态加載頁面的主題

1.0.0.1版本已經修改了代碼包括修改後的第三個方法,現在在以前的主題将被選中。首次。|穆拉利馬諾哈爾

回答

× 評論會員:遊客 時間:2011/12/27

偉大的解決方案,幹淨,而無需添加會話或全局變量...大砍,感謝男子

。阿布舍克河畔

× 評論會員:遊客 時間:2011/12/27

嘿..它的好文章,但我想我已經看到同樣的事情,很久以前,在上。阿布舍克蘇爾

穆拉利馬諾哈爾

× 評論會員:遊客 時間:2011/12/27

謝謝阿布舍克。我也曾嘗試在互聯網上搜索這個東西,但我不能找到解決方案,然後我試着做這件事,擁有自己的,并得到解決方案。可能是一些技術做這件事情......=

你可能想看:

有話要說...

取消
掃碼支持 支付碼

啟示号 © www.74hao.com 留言打賞 蜀ICP備19033681号-1