提问:关于asp.net 2.0自动换肤的问题

yanghuijun 2006-11-01 01:52:06
现在开始正式转到asp.net 2.0开发了,发现网站的themes功能很好,经过试用,也发现了有一些小问题,特向大家请教关于通过《后台设置》换肤的问题:
我在app_themes下面设置了两组主题为:default和gray,两组主题下分别设不同的CSS和skin。
然后通过设置stylesheettheme属性为上两种,通过网上查找资料发现:
如果要动态改变的两种方法
一、 protected void Page_Preinit()
{
Page.Theme = Gb.PageStyle //后面调用类
}
//问题:有没有办法不用Page_Preinit()而解决

二、在web.config中设置page的theme属性
//问题:如果在后台改变web.config的值。则会导致session莫名其妙失效

还有一点,上述两种方法都无法在DW中实现所见即所得的效果!!如何解决??
...全文
144 8 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yanghuijun 2006-11-03
  • 打赏
  • 举报
回复
如果按sp1234的思路做。效率会降低多少?有没有更优的方法
  • 打赏
  • 举报
回复
也可以将所有图片放在一个目录中,然后在皮肤文件中为不同theme的同一图片不同的url。

对用户控件也是如此。可以把用户控件放入不同的theme,也可以单独放。

默认的,图片和用户控件的资源是单独放。
  • 打赏
  • 举报
回复
最后,图片可以写:

img.ImageUrl="~/工程中Theme主目录/"+this.Theme+"/images/abc.jpg";
  • 打赏
  • 举报
回复
对于改变theme,调用一个页面(包括自己)的时候,都可以使用任何一种页面间传递参数方法传递theme值。

很自然地,web.config是不能够改的。web.config不是普通的xml文件那么简单,不要乱动。

DW为什么不支持theme,这要问DW。DW看起来对asp.net的很多新变化都不支持。
yanghuijun 2006-11-01
  • 打赏
  • 举报
回复
to ZYTP
意思是理解。关键在于怎么操作。
例如:第一套主题的时候:
<img src="App_Themes/Default/Image/top_left.gif" alt="" width="79" height="21" /
如果换成第二套主题则要变为:
<img src="App_Themes/Gray/Image/top_left.gif" alt="" width="79" height="21" /

怎样让他动态改变?
zytp 2006-11-01
  • 打赏
  • 举报
回复
不同的主题调用不同的图片。
zytp 2006-11-01
  • 打赏
  • 举报
回复
1 不用Page_Preinit()解决用什么解决
新建类PageBase.cs 继承至System.Web.Ui.Page
重写Page_Preinit()方法。在这个方法动态改变你的THEME
然后让所有的页面都继承PageBase。

2
当Web.Config更新后。在重新编译后改变后,Session失效。这是正常的。
yanghuijun 2006-11-01
  • 打赏
  • 举报
回复
附加一点:
如果在default和gray两套主题下面分别设Image文件夹,如何在改变stylesheettheme时,让图片指向不同主题下image文件夹中的图片(假如这两个image文件夹中的图片文件名一样)
发帖
.NET社区

6.1w+

社区成员

.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
帖子事件
创建了帖子
2006-11-01 01:52
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。