|
常常看到有的网站通过DropDownList、菜单或按钮实现对整个网站改变页面风格(换肤)。专门Google了一些这方面的资料,总结了一下实现以上功能大致可以分成两类: <head>
![]() <link rel=stylesheet type=text/css href=mycss.css /> </head> 如果需要切换CSS,就不能再定死这个<link>了。可以通过后台代码动态地改变这个控件的属性。 可以用<asp:placeholder>控件来代替。placeholder控件可以理解成一个控件的容器,就像一个透明的包,你往里面装什么,它就是什么。 现在页面变成了这个样子,我们在里面放了一个空的placeholder来代替link. <head>
<asp:placeholder id="MyCss" runat="server"/> </head> 在后台代码中定义一个函数,负责往placeholder里装东西,这里装css文件 public void ChangeSkin(string cssFile)
{ //生成一个新的HtmlGenericControl控件,它是一个link控件 HtmlGenericControl objLink = new HtmlGenericControl("link"); //定义这个Link的各项属性 objLink.ID = ID; objLink.Attributes["rel"] = "stylesheet"; objLink.Attributes["type"] = "text/css"; objLink.Attributes["href"] = cssFile; //把Link控件加到PlaceHolder控件中去 MyCss.Controls.Add(objLink); }
private void Page_Load(object sender, System.EventArgs e)
{ // 在此处放置用户代码以初始化页面 if(!Page.IsPostBack) { //判断客户端的浏览器是否支持Cookie if(Request.Browser.Cookies == false) label1.Text = "浏览器不支持Cookie !"; else label1.Text = "浏览器支持Cookie !"; //客户端是否有Skin信息保存 if(Request.Cookies["Skin"] == null) { ChangeSkin("default.css"); label2.Text = "Cookie 为空,默认CSS"; } else { //根据客户端保留的Cookie信息,来加载不同的CSS样式表文件 switch(Request.Cookies["Skin"].Value) { case "Red" : ChangeSkin("mycss2.css"); label2.Text = "Cookie中的CSS为红色"; break; case "Blue" : ChangeSkin("mycss.css"); label2.Text = "Cookie中的CSS为蓝色"; break; default: ChangeSkin("default.css"); // break; } } } public void SetCookie(string style)
{ HttpCookie myCookie = new HttpCookie("Skin"); myCookie.Value = style; Response.Cookies.Add(myCookie); } public void btClick(object src, EventArgs e) (责任编辑:admin){ SetCookie("Red"); ChangeSkin("mycss2.css"); label2.Text = "现在设为红色" ; } |






骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价