日期:2014-05-20  浏览次数:20534 次

ASP.Net中利用CSS实现多界面两法
通过使页面动态加载不同CSS实现多界面   (类似于这个blog)  
  方法一:  
<%@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>  

  运行后,查看页面源码.可发现文本框的样式已统一修改为 "TextBox_show ".  

  http://develop.csai.cn/web/200612111040421864.htm


------解决方案--------------------
不错,支持!
------解决方案--------------------
不错,支持!
------解决方案--------------------
不错,支持!

------解决方案--------------------