当前位置:首页 > 科技 > 正文

如何改变asp.net动态页面的主题

如何改变动态页面的主题

{S0}简介

这是一个简单的代码,可以用来在运行时改变页面的主题。此代码包含三个不同的方法来改变页面的主题页面。这段代码的专业是第三种方法,quot;只需改变单回传页面的主题。 背景

C#中,HTML,样式表和Java脚本的基本知识是必需的。使用代码

在第一,但我们可以说,我们可以很容易地实现编码事件如下所示。

protected void Page_PreInit(object sender, EventArgs e)
{
       Page.Theme = "Black"; //default theme
}

但是,如果用户要选择从的主题,那么问题的原因是是火灾之前,其他事件。;在负载选定的主题,利用会议或静态全局变量。无论是创建一个会话变量或静态全局变量存储在事件.nbsp选定的主题;使用.的刷新页面或. .nbsp;;方法1:使用会话变量{C}方法2:使用全局静态;

private static string theme;
 protected void Page_PreInit(object sender, EventArgs e)
 {
 if ((theme!= null) && (theme.Length != 0))
 {
 Page.Theme = theme;
 ddlTheme.Text = theme;
 }
 else
 {
 Page.Theme = "Black";
 }
 }
 protected void ddlTheme_SelectedIndexChanged(object sender, EventArgs e)
 {
 theme = ddlTheme.SelectedItem.Value;
 Server.Transfer(Request.FilePath);
 }

挑战

现在有人给我做这个任务,而无需使用任何会话变量,全局静态变量,也无需重新装载网页使用.的或.只是意味着改变单一页面回发的页面主题是一个挑战。{ A1}解决方案在负荷选定的主题,使用客户端的。 创建一个函数,存储在客户端的选定的主题。调用此功能事件在客户端side.nbsp的;;方法3:简单地改变页面的单回传的页面主题。

"form1" runat="server">
"0" cellpadding="0" cellspacing="0" style=width: 100%><tr><td><table><tr><td>Theme</td><tdwidth=6px></td><td><asp:DropDownListID="ddlTheme"AutoPostBack="true"onchange="javascript:SetTheme()"runat="server"><asp:ListItemSelected="True">Black</asp:ListItem><asp:ListItem>White</asp:ListItem></asp:DropDownList></td></tr></table></td></tr><tr><tdstyle="height:12px"></td></tr><tr><tdalign="center"><divstyle="text-justify: auto; text-align: justify; width:500px"> Dear Friends, This demo project shows, How to load Theme dynamically. The speciality of this page is "No Need to use any session, global variable and no need to send the new request to server only postback is required means no need to use Response.Redirect or Server.Transfer to same or other page". I simply store the selected theme in client cookie at client side by using javascript function and load newly selected theme on page preinit event at server side. Default theme is Black. </div></td></tr></table></div><scripttype="text/javascript"> function SetTheme() { document.cookie = "theme=" + document.getElementById('ddlTheme').value + ";"; } </script></form>

protected void Page_PreInit(object sender, EventArgs e)
 {
 if ((Request.Cookies["theme"] != null)
 && (Request.Cookies["theme"].Value.Length !=0))
 Page.Theme = Request.Cookies["theme"].Value;
 else
 Page.Theme = "Black";
 }

兴趣点

我赢了,不重载页面的使用.的这项任务或.和不使用会话或静态全局变量也意味着简单地改变page.单回传网页的主题是发射前的其他事件。无论是创建一个会话变量或静态全局变量来存储事件..或.选择主题起着重要的作用,在第一两个.Now我的挑战,简单地改变单一页面回发的页面主题。使用客户端功能,存储在客户端的选定的主题和负载事件这个主题,这一事件将调用每.nbsp 事件的时间,所以没有必要使用.的重载页面,或仅.方法单回传需要动态改变页面的主题。;

版本1.0.0.0初始代码,包括所有三个不同的方法页面动态加载页面的主题

1.0.0.1版本已经修改了代码包括修改后的第三个方法,现在在以前的主题将被选中。首次。|穆拉利马诺哈尔

回答

× 评论会员:游客 时间:2011/12/27

伟大的解决方案,干净,而无需添加会话或全局变量...大砍,感谢男子

。阿布舍克河畔

× 评论会员:游客 时间:2011/12/27

嘿..它的好文章,但我想我已经看到同样的事情,很久以前,在上。阿布舍克苏尔

穆拉利马诺哈尔

× 评论会员:游客 时间:2011/12/27

谢谢阿布舍克。我也曾尝试在互联网上搜索这个东西,但我不能找到解决方案,然后我试着做这件事,拥有自己的,并得到解决方案。可能是一些技术做这件事情......=

你可能想看:

有话要说...

取消
扫码支持 支付码

启示号 © www.74hao.com 留言打赏 蜀ICP备19033681号-1