zoukankan      html  css  js  c++  java
  • 在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://www.cnblogs.com/oupatch/archive/2005/03/16/118960.html

  • 相关阅读:
    JDK里的设计模式
    设计模式之注册表模式
    设计模式多线程方面之Thread-Per-Message 模式
    UML类图关系大全
    记大三开学的第一个月末
    【OC加强】NSDate的使用方法——日期时间在实际开发中比較有用
    iOS 多线程开发之OperationQueue(二)NSOperation VS GCD
    Cocos2d-x Layout简单使用
    POJ 1205 Water Treatment Plants(递推)
    Troubleshooting &quot;Global Enqueue Services Deadlock detected&quot; (Doc ID 1443482.1)
  • 原文地址:https://www.cnblogs.com/dagon007/p/120126.html
Copyright © 2011-2022 走看看