用C#代码动态改变页面样式

时间:2021-06-13 08:59:03

在Web系统开发过程中,采用CSS 增强和美化页面样式已经成了一道标准‘工序’。在Visual Studio .NET 环境下开发BS系统,可以通过设置WEB 控件的CssClass属性,方便地设置和修改控件的样式。

但在实际开发过程中,让开发人员一个个地设置控件的CssClass属性,不仅繁琐,而且容易出错,更头疼的是,还可能造成维护上的麻烦。

下面的代码段演示了一种在实际应用中取得良好效果的解决办法,希望能起到抛砖引玉的效果。基于这样的思路,相信大家可以开发出更多的应用,如实现简单的SKIN功能等。

代码如下。使用方法就是在每个.ASPX的Page_Load()方法里调用LoadPageCSS ()即可。

 public void LoadPageCSS (System.Web.UI.Page vPage)
 {
     if (!vPage.IsPostBack)
     {
        SetControlsCSS (vPage.Controls);
     }
 }

 private void SetControlsCSS (System.Web.UI.ControlCollection vControls)
 {
     for (int i=0; i<vControls.Count; i++)
     {  
        System.Web.UI.Control vControl = vControls[i];
        string vControlName = vControl.GetType().Name;
        switch (vControlName)
        {
            case "TextBox":
               TextBox_CSS ((TextBox) vControl);
               break;
            case "RadioButtonList":
               RadioButtonList_CSS ((RadioButtonList) vControl);
               break;
            case "DropDownList":
               DropDownList_CSS ((DropDownList) vControl);
               break;
            case "Button":
               Button_CSS ((Button) vControl);
               break;
            case "DataGrid":
               DataGrid_CSS ((DataGrid) vControl);
               break;
            ///   更多的控件类型及其处理方法
            ///   ....
            ///   ...
        }
        if (vControl.Controls.Count > 0)
        {
            SetControlsCSS (vControl.Controls);
        }
     }

 }

 private void RadioButtonList_CSS(RadioButtonList vRdoList)
 {
     vRdoList.CssClass ="RadioButtonList_show";    
 }