日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET动态的修改主题

發布時間:2025/7/14 asp.net 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET动态的修改主题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在有的網站上,允許用戶根據自己的喜好來更改皮膚,這個功能利用ASP.NET的主題機制可以方便的實現,在C#代碼中可以通過Page類的Theme屬性改變頁面的主題,代碼如下:

   Page.Theme ="要設置的主題名稱";

要想改變主題,第一個直觀的思想就是在頁面中添加一個DropDownList控件,然后用戶通過選擇相應的主題。 然后增加一個按鈕,在按鈕的Click的事件中根據用戶的選擇來進行修改。但是這個思路并不可行,因為根據對ASP.NET頁面生命周期的分析,當處理Button的click事件時,頁面主題已經應用完畢(因為控件的初始化在PreInit事件發生之前),此時修改

主題不可行。一個可行的思路就是必須在PreInit事件觸發是選擇好頁面的主題值。然后在頁面生命的早期階段(PreInit事件中),無法讀取用戶控件的狀態,顯然這是一組矛盾。所以這里需要一些技巧來解決這個矛盾。

  也行很快地就想出第二種方式,就是利用C#的事件處理,通過在按鈕的事件中重新觸發一次PreInit事件,代碼如下:

? protected void Page_Load(object sender, EventArgs e)
??????? {

      ?this.PreInit += new EventHandler(Page_PreInit);

??????? }

?protected void Page_PreInit(object sender, EventArgs e)

{

  this.Theme = DropDownList1.SelectedValue;

}

從實際的運行結果來看,這個方案也不可行,因為在頁面生命周期中,PreInit事件先運行,這時候并不知道控件DropDownList的狀態,所以矛盾沒有解決。

????? 第三種方案就是把用戶所選擇的主題作為一個QueryString參數傳遞,然后在Page類的PreInit事件中讀取此參數并修改主題。

假設已創建了兩個主題:GrassGreen 和SkyBlue,在添加一個客戶端按鈕,并為此按鈕編寫JavaScript腳本。代碼如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ThemePage.aspx.cs" Inherits="ExampleChapter1Dot9.ThemePage" Theme="GrassGreen" %>

<!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>
??? <script type="text/javascript" language="javascript">
??????? function changeTheme() {
??????????? //獲取當前所選的主題
??????????? var theme = document.getElementById('<%=DropDownList1.ClientID %>').value;
??????????? //重新加載當前畫面,并通過QueryString 傳遞所選中的主題
??????????? window.location = "ThemePage.aspx?theme=" + theme;
??????? }
??? </script>
</head>
<body>
??? <form id="form1" runat="server">
??? <div>
??????? 請選擇一個主題:<asp:DropDownList ID="DropDownList1" runat="server">
??????? <asp:ListItem Value="GrassGreen">草綠色</asp:ListItem>
??????? <asp:ListItem Value="SkyBlue">天藍色</asp:ListItem>
??????? </asp:DropDownList>
??????? <br />

????? <asp:Button ID="Button1" runat ="server" Text="更改主題" οnclick="Button1_Click" />
??????? <input type="button" value="更改主題(客戶端Button)" οnclick="changeTheme()" />
??? </div>
??? </form>
</body>
</html>

在.CS文件中

protected void Page_PreInit(object sender, EventArgs e)
??????? {
??????????? this.Theme = Request.QueryString["theme"] ?? "SkyBlue";
??????? }

第三種方案可以解決動態的改變主題。

個人總結,在讀取控件或者改變控件狀態時,必須考慮到頁面生命周期,這個也是學習ASP.NET必須記住的過程。

轉載于:https://www.cnblogs.com/fartherfuture/p/3505341.html

總結

以上是生活随笔為你收集整理的ASP.NET动态的修改主题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美肉丝袜videos办公室 | 成人激情电影在线观看 | 黄色小视频免费观看 | 欧美另类xxx| 欧美性福利| 国产日韩欧美激情 | 欧美一级视频免费观看 | 国产第五页 | 韩国av免费观看 | 国产成人无码精品 | 黄色91免费观看 | a天堂资源在线观看 | 天堂一区在线 | 欧美一区中文字幕 | 亚洲大尺度视频 | 91精品国产高清 | 欧美理论在线观看 | 国产精品一二区在线观看 | 国产区福利 | 国精产品一区一区三区视频 | 久久久久国产精品国产 | 久久久精品中文字幕麻豆发布 | 俄罗斯毛片 | 日日干天天爽 | 国产精品久久亚洲7777 | 国内成人自拍 | 免费看日批视频 | 波多野结衣在线视频免费观看 | 午夜精品福利在线 | 少妇一区二区三区 | 久一区二区三区 | 97超碰中文 | 国产在线观看成人 | 亚洲精品香蕉 | 91网在线| 中文字幕有码在线观看 | 国产女主播福利 | 真实新婚偷拍xxxxx | 国产精品爽爽爽 | 国产一二三区免费视频 | a国产 | 日韩午夜在线播放 | 999这里只有精品 | 国产伦理一区二区三区 | 97桃色| 亚洲成人手机在线 | 国产精品入口麻豆九色 | 久久综合婷婷国产二区高清 | 99ri国产在线 | 国产网站一区 | 色爱av综合网 | 五十路av | 一区二区在线视频 | 解开乳罩喂领导吃奶 | 狠狠干网站 | 少妇太紧太爽又黄又硬又爽小说 | 欧美婷婷六月丁香综合色 | 韩日免费视频 | 国产精品日日摸夜夜爽 | 国产毛片毛片毛片毛片 | 日本a级片免费 | 天天谢天天干 | 四虎成人影视 | 91精品国产综合久久香蕉922 | 国产精品视频亚洲 | 国产视频久久久 | 日本在线高清 | 狂野少女电影在线观看国语版免费 | 国产三级一区二区 | 亚洲最大成人av | 在线免费观看国产精品 | 日本aaa视频 | 国产大屁股喷水视频在线观看 | 国产第八页 | 夜夜福利| 免费成人国产 | 日批视频在线看 | 亚洲观看黄色网 | 国产九九热 | 影音先锋在线看 | 国产精品亚洲а∨天堂免在线 | 精品在线91| 综合色影院 | 伊人久久精品一区二区三区 | 国产美女作爱全过程免费视频 | 亚洲一区二区精品在线观看 | 91视频免费网址 | 伊人av网站 | 欧美视频xxxx | 末路1997全集免费观看完整版 | 日韩av电影手机在线观看 | 玖玖爱在线观看 | 97伊人网 | 超碰成人免费在线 | 日韩在线观看视频一区二区 | 国产+日韩+欧美 | 欧美激情一级精品国产 | 色偷偷中文字幕 | 91视频啪啪|