ASP.Net中利用CSS實現多介面兩法

來源:互聯網
上載者:User
通過使頁面動態載入不同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".

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.