主题简介 ASP .NET
由控件的外觀、樣式組成的集合,由一個文件組構成,存放在App_Themes文件夾下。
主題包括:皮膚文件(.Skin)、CSS文件(.CSS)、圖片、其它資源等。
主題的作用:統一設置Web頁面的外觀。
主題與CSS的比較
相似點 ? ? ? ? ? 允許定義一組作用于多個頁面中的控件的樣式特性。
不同點 主題基于控件而不是HTML ?
? ?主題允許定義和重用幾乎所有的控件屬性
CSS只是直接作用于HTML的樣式特性
主題應用在服務器上
? ?主題作用到頁面時,格式化后的最終頁面被傳送給用戶。
? ?使用樣式表時,瀏覽器同時接收到頁面和樣式信息并在客戶端合并它們。
不同點 ? ? 可以通過配置文件來應用主題 不必修改任何一個頁面就可以對整個文件及或整個網站應用主題
? ?主題不會像CSS那樣級聯 CSS:內聯樣式優先采用
? ?主題:主題里定義的值會覆蓋控件的屬性。可以通過提高頁面屬性的優先級來改變,這樣主題的行為將更像樣式表。
分工協作
? ?CSS文件:HTML控件和頁面的樣式屬性
? ?主題:服務器控件的樣式屬性 ? ? ? ? ?皮膚代碼中只留樣式代碼其余都移除
?
控件皮膚類型 ? ? ??默認皮膚 應用于同一類型的所有控件 唯一 ? ? ? ? ? ? ? ? 已命名皮膚 包含SkinID屬性 多個SkinID不重復
定義默認皮膚
<asp:TextBox runat="server" BackColor="#8080FF" BorderStyle=“Groove” ForeColor=“Red“ /> ? ? ? ?*該代碼是寫在皮膚文件中而不是頁面文件中
這是命名皮膚?
<asp:TextBox runat="server" BackColor="#8080FF" BorderStyle=“Groove” ForeColor=“Red“ ?SkinID=“txt1" />?
<asp:TextBox ID=“TextBox1" SkinID=“txt1" Runat="server" /> ? 寫在網頁中
在頁面級別應用主題
<%@Page ? Theme="主題名" ?>
在站點配置文件
<configuration>
<system.web>
<Pages ?theme="主題名" />
</system.web>
</configuration>
主題沖突
? 如果控件的屬性和主題定義的屬性沖突,總是優先使用主題定義的屬性
改變優先級
? <%@Page ? styleSheetTheme="主題名" ?>
? ? ? ? styleSheetTheme<控件屬性<Theme ?
?
一個ASP.NET頁面的生命周期為: ?頁面事件執行的順序
客戶端請求頁面-->預初始化conPreInit-->初始化conInit-->完成初始化conInitComplete-->載入ViewState(LoadViewState)-->處理回送數據(IsPostBackDataHander)-->Page_OnPreLoad-->Page_OnLoad-->回發更改通知-->處理回發事件-->Page_OnLoadComplete-->預呈現-->完成預呈現-->保存-->保存ViewState-->呈現-->Page_UnLoad
在第2步就可以進行定義站點主題(Theme)
動態加載主題:
? ? ? Button_Click事件
? ? ? ?Response.Redirect("Default.aspx?Theme=red")
? ?
? ? page_PreInit 事件, ?這個事件需要自己手動寫 ? //在加載事件前面完成
? ? if(Request.QueryString["Theme"]!=null)
? ? ? string theme=Request.QueryString["Theme"].ToString();
?
換主題: ? 用 ? DropDownList ?控件做
//確定由哪個控件引發頁面回傳,記錄此控件的唯一標識符
? UniqueID ?-->在網頁中此控件的ID
? ? ? ? △生成網頁時會有(_ _EVENTTARGET)生成 ? ? ? //_ _EVENTTARGET ?頁面隱藏字段中獲取
? ? ? ? string ID=Request.Form["_ _EVENTTARGET"] ? ? ? ? ? ?//誰引發頁面回傳就得到誰的ID
? ? ? ?Request.Form[id] ? ? ? ? ? ? ? //獲取列表值
?
自定義控件:封裝小部分內容
母板頁:封裝大部分相同的內容
? ? ? ? ? ? ? ? ? ? ? 當有母版頁,內容頁,自定義控件事件發生順序
? ? ? ? ? ? ? ? ? ? ?內容 ?》》 母版頁 ? 》》 自定義控件
? ?preInit-->PageLoad-->PageLoad-->PageLoad
轉載于:https://www.cnblogs.com/Sea1ee/p/5911120.html
總結
以上是生活随笔為你收集整理的主题简介 ASP .NET的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 冷藏柜操作台盘管坏了建议换还是修?
- 下一篇: 40平米的客厅用多大的空调好?
