2012年2月2日 星期四

ASP.NET通過使頁面動態加載不同CSS實現多界面

ASP.Net中利用CSS實現多界面兩種方法。
  方法一:
<%@page language="C#"%> 
<%@import namespace="System.Data"%> 
<script language="c#" runat="server"> 
public void page_load(Object obj,EventArgs e) 

//創建服務器端控件. 
//指定的標記"LINK"初始化此類的新實例. 
HtmlGenericControl objLink=new HtmlGenericControl("LINK"); 
objLink.ID=ID; 
objLink.Attributes["rel"]="stylesheet"; 
objLink.Attributes["type"]="text/css"; 
objLink.Attributes["href"]="portal.css"; 
//此控件不產生任何可見輸出,僅作為其他控件的容器,可在其中添加,插入或移除控件. 
MyCSS.Controls.Add(objLink); 

</script> 
<html> 
<head> 
<title>c#</title> 
asp:placeholder id="MyCSS" runat="server"></asp:placeholder> 
</head> 
<body bgColor="#ffcc66" style="FONT:9pt"> 
<form runat="server"> 
</form> 
</body> 
</html>

  通過動態設置頁面所有同類型控件的樣式來變界面:
  方法二:
  可以通過改變WEB控件的CssClass屬性,可方便地設置和修改控件的樣式。但在實際開發過程中,一個個地設置控件的CssClass屬性,非常繁瑣,所以此思路應用不廣.
  但下面的代碼段演示了一次性改變頁面所有同類型控件的樣式的方法,可以實現簡單的SKIN等功能。
  代碼如下:
public void page_load(Object obj,EventArgs e) 

if(!Page.IsPostBack){ 
//為頁面的所有控件設置樣式. 
SetCSS(Page.Controls); 


private void SetCSS(System.Web.UI.ControlCollection vControls) 

for(int i=0;i<vControls.Count;i++) 

System.Web.UI.Control vControl=vControls[i]; 
//得到控件的類型 
//可增加控件類型及相應處理方法 
string PType=vControl.GetType().Name; 
switch (PType) 

case "TextBox": 
TextBox_CSS ((TextBox) vControl); 
break; 
case "Button": 
//Button_CSS ((Button) vControl); 
break; 
case "DataGrid": 
//DataGrid_CSS ((DataGrid) vControl); 
break; 

if(vControl.Controls.Count>0) 
SetCSS(vControl.Controls); 


private void TextBox_CSS(TextBox tb){ 
tb.CssClass="TextBox_show"; 

<form runat="server"> 
asp:textbox id="Search1" runat="server"/> 
asp:textbox id="Search2" CssClass="INPUT" runat="server"/> 
</form>

沒有留言:

張貼留言