asp.net通过动态加载不同CSS实现多界面
方法一:
<%@pagelanguage="C#"%> <%@importnamespace="System.Data"%> <scriptlanguage="c#"runat="server"> publicvoidpage_load(Objectobj,EventArgse) { //创建服务器端控件. //指定的标记"LINK"初始化此类的新实例. HtmlGenericControlobjLink=newHtmlGenericControl("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:placeholderid="MyCSS"runat="server"></asp:placeholder> </head> <bodybgColor="#ffcc66"style="FONT:9pt"> <formrunat="server"> </form> </body> </html>
==========================================
通过动态设置页面所有同类型控件的样式来该变界面:
方法二:
可以通过改变WEB控件的CssClass属性,可方便地设置和修改控件的样式。
但在实际开发过程中,一个个地设置控件的CssClass属性,非常繁琐,所以此思路应用不广.
但下面的代码段演示了一次性改变页面所有同类型控件的样式的方法,可以实现简单的SKIN等功能。
代码如下:
publicvoidpage_load(Objectobj,EventArgse) { if(!Page.IsPostBack){ //为页面的所有控件设置样式. SetCSS(Page.Controls); } } privatevoidSetCSS(System.Web.UI.ControlCollectionvControls) { for(inti=0;i<vControls.Count;i++) { System.Web.UI.ControlvControl=vControls[i]; //得到控件的类型 //可增加控件类型及相应处理方法 stringPType=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); } } privatevoidTextBox_CSS(TextBoxtb){ tb.CssClass="TextBox_show"; } <formrunat="server"> <asp:textboxid="Search1"runat="server"/> <asp:textboxid="Search2"CssClass="INPUT"runat="server"/> </form>
运行后,查看页面源码.可发现文本框的样式已统一修改为"TextBox_show".
以上2种方法就是.net种实现加载不同CSS来实现多种页面效果,非常的实用,有相同需求的小伙伴参考下吧。