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".
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值