ITPUB??ì3
ITPUB论坛 » Web开发 » ASP.NET与AJAX » 在ASP.Net中两种利用CSS实现多界面的方法.

新一届的微软MVP评选已经开始,欢迎各位推荐!

标题: 在ASP.Net中两种利用CSS实现多界面的方法.
离线 马甲走江湖
江湖任我行


精华贴数 4
个人空间 70
技术积分 19686 (47)
社区积分 26188 (42)
注册日期 2006-10-26
论坛徽章:151
现任管理团队成员金牌徽章银牌徽章铜牌徽章2008欧洲杯之星欧洲冠军杯纪念徽章
2008北京奥运纪念徽章:皮划艇激流回旋2008北京奥运纪念徽章:乒乓球2008北京奥运纪念徽章:蹦床体育版块博采纪念徽章2008北京奥运纪念徽章:帆船2008北京奥运纪念徽章:排球

发表于 2006-12-29 18:57 
在ASP.Net中两种利用CSS实现多界面的方法.

通过使页面动态加载不同CSS实现多界面
方法一:

<%@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>
<asplaceholder id="MyCSS" runat="server"></asplaceholder>
</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;

        //得到控件的类型
        //可增加控件类型及相应处理方法
        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".


__________________
The following programme is not suitable for children

香车圈子,欢迎您的加入
只看该作者    顶部
离线 star_zhang
花花公仔


精华贴数 0
个人空间 0
技术积分 1117 (1615)
社区积分 127 (3036)
注册日期 2005-4-16
论坛徽章:4
生肖徽章2007版:马2008年新春纪念徽章生肖徽章2007版:鼠ITPUB新首页上线纪念徽章  
      

发表于 2007-1-1 12:44 
学习学习哦!


__________________
天行健,君子以自強不息;
地勢坤,君子以厚德載物 !
MSN:ZHX20010516@126.COM  
QQ:94084523
http://blog.chinaunix.net/u2/61723/
只看该作者    顶部
离线 piziwantsay
瓜子:想做个饱满的瓜子


精华贴数 1
个人空间 0
技术积分 733 (2588)
社区积分 74 (4010)
注册日期 2003-2-18
论坛徽章:1
操作系统板块每日发贴之星     
      

发表于 2007-1-4 08:43 
//指定的标记"LINK"初始化此类的新实例.
HtmlGenericControl objLink=new HtmlGenericControl("LINK";
??不明白,能不能把把这句话解释下呢,真是不好意思


__________________
为中华之掘起而读书----------周恩来做为中国青年我也有责任刻苦学习MSN:neveracedia@hotmail.comQQ:173111954走进CIMS时代,修炼中.......
只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问