1. 程式人生 > >Asp.net主題(theme)和面板(skin)的使用

Asp.net主題(theme)和面板(skin)的使用

asp.net的伺服器端控制元件提供了多種樣式的設計,如果對每個控制元件都單獨設定,是比較繁瑣的事情,所以微軟也提供了針對這些伺服器端控制元件的樣式管理,其實也可以通過css來控制部分伺服器端控制元件的樣式,比如textbox,如果用普css就是對input進行樣式控制,但對於gridview或者日曆控制元件等,css檔案無法靈活的控制,這就需要微軟專門為伺服器端控制元件提供的主題和面板。

主題和面板的使用方法:

1、新建外觀檔案(*.skin),然後在檔案裡設定伺服器端控制元件的樣式

2、在aspx頁面的Page里加入外觀檔案的應用,StylesheetTheme或者Theme(兩者有不同)

StylesheetTheme和Theme的區別:

針對預設的樣式(沒有定義SkinID的樣式),在相應的aspx頁面中Theme將採用定義的樣式,在頁面裡再設計同屬性的樣式無效;StylesheetTheme則允許在頁面裡再定義同屬性的樣式並有效。(注意:是同屬性的樣式,比如同是定義Height)

舉例:
假設我們建立了一個外觀檔案newSkin,定義了一個預設textbox的樣式和一個指定SkinID的textbox的樣式(背景顏色、邊框的顏色、寬度和線條型別)
<asp:TextBox runat="server" BorderColor="#6699FF" BackColor="#CCFFCC" BorderWidth="1px" BorderStyle="Solid"></asp:TextBox><asp:TextBox runat="server" SkinID="new" BackColor="#FFCC99" BorderColor="#FF6600" BorderStyle="Dotted" BorderWidth="2px"></asp:TextBox>

示例1:

在aspx頁面中使用Theme來引入外觀檔案,並且在頁面裡有四個TextBox的控制元件:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Skin_Default" Theme="newSkin"%>
控制元件1:
<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
控制元件2:
<asp:TextBox ID="TextBox1" runat="server" BackColor="#009933" BorderColor="#FF6600" BorderStyle="Dotted
" BorderWidth="2px"></asp:TextBox>
控制元件3:
<asp:TextBox ID="TextBox2" runat="server" Height="40px"></asp:TextBox>
控制元件4:
<asp:TextBox ID="TextBox2" SkinID="new" runat="server" BorderWidth="1px" BorderStyle="Solid"></asp:TextBox>

結果:
控制元件1和控制元件2的樣式是一樣的,控制元件2在頁面裡設定的樣式無效;
控制元件3除了自定義的高度之外,和控制元件1、2的樣式一樣。(在外觀檔案裡沒有定義的屬性樣式,可以在頁面裡定義)
控制元件4的樣式是外觀檔案裡SkinID為new的樣式,頁面裡定義的樣式無效。

示例2:

在aspx頁面中使用Theme來引入外觀檔案,並且在頁面裡有四個TextBox的控制元件:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Skin_Default" StylesheetTheme="newSkin"%>
控制元件1:
<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
控制元件2:
<asp:TextBox ID="TextBox1" runat="server" BackColor="#009933" BorderColor="#FF6600" BorderStyle="Dotted" BorderWidth="2px"></asp:TextBox>
控制元件3:
<asp:TextBox ID="TextBox2" runat="server" Height="40px"></asp:TextBox>
控制元件4:
<asp:TextBox ID="TextBox2" SkinID="new" runat="server" BorderWidth="1px" BorderStyle="Solid"></asp:TextBox>

結果:
控制元件1是使用外觀檔案裡的預設樣式;
控制元件2是頁面裡自定義的樣式;
控制元件3除了自定義的高度之外,和控制元件1的樣式一樣;
控制元件4的樣式使用了外觀檔案裡SkinID為new的樣式中BackColor
="#FFCC99" BorderColor="#FF6600"這兩個屬性,BorderWidth和BorderStyle則是頁面裡定義的樣式。

如果StylesheetTheme或Theme和我們原來設計頁面的css檔案(或者頁面定義style)同時使用會是什麼情況?

結果:無論是使用StylesheetTheme或Theme,只要是在外觀檔案裡定義的屬性值,均是有效的,沒有定義的屬性值採用css檔案裡的樣式。

如果同時使用StylesheetTheme或Theme、頁面自定義樣式和css檔案,那又會怎麼樣?

結果:優先順序(優先順序的意思是先採用優先順序高定義的樣式,如果優先順序高的沒有定義,則採用下一優先順序的樣式)
1、Theme:外觀檔案->頁面控制元件自定義樣式->css檔案

2、StylesheetTheme:頁面控制元件自定義樣式->外觀檔案->css檔案

總之,css檔案的優先順序是最低的。

相關推薦

Asp.net主題theme面板skin的使用

asp.net的伺服器端控制元件提供了多種樣式的設計,如果對每個控制元件都單獨設定,是比較繁瑣的事情,所以微軟也提供了針對這些伺服器端控制元件的樣式管理,其實也可以通過css來控制部分伺服器端控制元件的樣式,比如textbox,如果用普css就是對input進行樣式控制,但對於gridview或者日曆控制元件

Asp.net主題theme面板skin

  asp.net的伺服器端控制元件提供了多種樣式的設計,如果對每個控制元件都單獨設定,是比較繁瑣的事情,所以微軟也提供了針對這些伺服器端控制元件的樣式管理,其實也可以通過css來控制部分伺服器端控制元件的樣式,比如textbox,如果用普css就是對input進行樣式控制

ASP.NET MVC5+EF6+EasyUI 後臺管理系統87-MVC Excel導入導出

.net本文示例代碼下載: 鏈接:http://pan.baidu.com/s/1jHBdgCA 密碼:hzh7ps:Vs數據庫腳本在解壓目錄下,修改web.config數據庫鏈接,示例代碼包含:導入,導出,上傳前言:導入導出實在多例子,很多成熟的組建都分裝了導入和導出,這一節演示利用LinqToExcel組

ASP.NET中關於資料匹配查詢的幾點研究歡迎大神提供更精妙演算法

相信下面這種情況在ASP.NET開發中會時常遇到:查詢DataTable_2中的某列資料是否全部出現在DataTable_1中,如果是,則提取部分資料,否則輸出提示。 如果是小資料量,任何的迴圈查詢都無所謂。如果大資料量,那就要講究方法了。本人糾結於這種匹配好久,弄了個測試程式。希望大神能夠

ASP.NET MVC5+EF6+EasyUI 後臺管理系統88-Excel匯入匯出-主從表結構匯出

前言 前面一篇詳細講解了匯入匯出,本節演示混合結構的匯出功能!同時提供程式碼下載.. 先看效果圖:這個一個混合的Excel,列表與自定義資訊的混合!   我們的步驟大概分為以下幾步 1.模擬資料庫資料 2.建立工作簿 3.填充固定資料 4.合併單元格 5.處理動態資料  

探索ASP.NET MVC5系列之~~~2.檢視篇---包含XSS防禦非同步分部檢視的處理

其實任何資料裡面的任何知識點都無所謂,都是不重要的,重要的是學習方法,自行摸索的過程(不妥之處歡迎指正) 4.共用其他檢視 不同控制器渲染同一個檢視檔案。這個應用場景還是比較多的,比如同樣是Article的集合,一個是顯示最新文章列表,一個是顯示文章列表,一個是顯示編輯推薦文章列表,基

探索ASP.NET MVC5系列之~~~3.檢視篇---包含常用表單暴力解猜防禦

其實任何資料裡面的任何知識點都無所謂,都是不重要的,重要的是學習方法,自行摸索的過程(不妥之處歡迎指正) 這幾天忙著幫別人普及安全,今天就把這篇文章結束掉,明天講下 “過度提交” 的防禦。這次開篇就激烈點==》爆破演示: 開啟Burp   設定監聽埠==》8080 設定一下代理:

建設局專案總結——ASP.NET 實現自動捕獲異常異常處理

               建設局專案幾乎要接近尾聲了,從頭到尾差不多有半個月的時間吧,半個月 不知不覺就這樣過去了,總結這半個月,好像每天都很忙,每天都很忙碌,但是仔細想想好像又沒做出多少正兒八經的工作量,總共做了下面幾個模組: 獎項懲罰列表,編輯等 企業資訊編輯

ASP.NET單值繫結多值繫結c#+VS2010

一、單值繫結 新建一個ASP.NET網站模板->雙擊網站根目錄下的Default.aspx檔案,開啟設計檢視,從工具箱中拖一個label控制元件到設計檢視中->切換到源檢視中,設定label控制元件的屬性如下: <asp:Label ID="Label1

ASP.NET 主題ThemesFAQ

StylesheetTheme 與 Theme區別: <pages StylesheetTheme="Theme_1"></pages> StylesheetTheme:App_Themes中全域性樣式不會覆蓋使用者在頁面控制元件上的自定義樣式。

ASP.NET Core中GetServiceGetRequiredService之間的區別

上篇文章《在.NET Core 3.0中的WPF中使用IOC圖文教程》中,我們嘗試在WPF中應用.NET Core內建的IOC進行程式設計,在解析MainWindow的時候我用了GetRequiredService<T>()方法,當時就在想這個GetRequiredService<T>

ASP.NET MVC5+EF6+EasyUI 後臺管理系統1-前言與目錄持續更新中...

編碼規範 圖標 pri log 任務 ros 部署 基本 form 開發工具:VS2015(2012以上)+SQL2008R2以上數據庫    您可以有償獲取一份最新源碼聯系QQ:729994997 價格 666RMB 升級後界面效果如下: 日程管理 http://

03、手工創建Asp.Net Core 2.0 web應用程序探索最小架構

log bho 啟動 oid img gif method nuget ica 03、手工創建Asp.Net Core 2.0 web應用程序(探索最小架構) 一、創建一個幹凈的控制臺程序 這裏我們使用的開發工具是VS2017 項目只有一個Program.cs類。

【第三篇】ASP.NET MVC快速入門之安全策略MVC5+EF6

對象 code word 單身 script ticket bsp 金額 class 【第一篇】ASP.NET MVC快速入門之數據庫操作(MVC5+EF6) 【第二篇】ASP.NET MVC快速入門之數據註解(MVC5+EF6) 【第三篇】ASP.NET MVC快速入門之

ASP.NET MVC5+EF6+EasyUI 後臺管理系統65-MVC WebApi 用戶驗證 (1)

screen 屬性 access override jquery true mod 解析 action 系列目錄 前言: WebAPI主要開放數據給手機APP,其他需要得知數據的系統,或者軟件應用,所以移動端與系統的數據源往往是相通的。 Web 用戶的身份驗證,及

ASP.NET MVC5+EF6+EasyUI 後臺管理系統4-創建項目解決方案

構建 文章 數據庫 操作 webapi http 業務 pps 技術分享 系列目錄 前言 為了符合後面更新後的重構系統,文章於2016-11-1日重寫 設計中術語,概念這種東西過於模糊,我們必須學習累積才能認識這些概念模型。 我無法用文章來下詳細解析此系統的深層概念,需要

ASP.NET指定頁面轉PDF、JPG插件

isp asp type ref [] addheader 導出pdf length net //PDF文件導出 public ActionResult pdfs() { //導出頁面的路徑(死路徑)

ASP.NET Core 一步步搭建個人網站7_Linux系統移植

window std bce stat 能夠 rpm 設置 with err 摘要 考慮我們為什麽要選擇.NET Core? 因為它面向的是高性能服務器開發,拋卻了 AspNet 的臃腫組件,非常輕量,加上微軟的跨平臺戰略,對 Docker 的親和性,對於開發人員也非常友好

ASP.NET MVC5+EF6+EasyUI 後臺管理系統62-EF鏈接串加密

image title orm mst .... 比較 string類 sin isn 前言:   這一節提供一個簡單的功能,這個功能看似簡單,找了一下沒找到EF鏈接數據庫串的加密幫助文檔,只能自己寫了,這樣也更加符合自己的加密要求 有時候我們發布程序為了避免程序外的

.Net: C#中的委托Delegate事件Event

一道 中大 每次 summary lang tro 避免 strong lse 委托和事件在 .Net Framework中的應用非常廣泛,然而,較好地理解委托和事件對很多接觸C#時間不長的人來說並不容易。它們就像是一道檻兒,過了這個檻的人,覺得真 是太容易了,而沒有過去的