如何动态更换页面主题

tanyunqingqing 2009-03-24 11:10:12
初学ASP.NET,刚学了主题这个概念,可页面的主题都是事先设定好的,看见过很多网页有一个菜单或按钮,可以通过选择菜单和按钮来更换主题,比如有一个换色的菜单,当选红色时页面会变成红色,选其它颜色页面就会变成其它颜色,不知道这些动态更换页面主题是如何实现的。最好能给我一个实例和代码,谢谢。
...全文
734 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lucas623 2009-03-27
  • 打赏
  • 举报
回复
我是这个意思,先自己设好几个Theme,然后动态应用;可你给的我还是不怎么懂,能否给我讲解一下各句话的意思,还有我如何打开页面的PreInit事件?不好意思啊,我确实是初学,然后书上也没讲主题的动态应用,这是我们老师给我们扩展的一个问题。谢了!
-----------------
二楼的做法是正确
这个方法是在page_load之前就会调用的方法 但是你要自己写
把这个方法copy进去就行了 字不要打错了
protected void Page_PreInit(object sender, EventArgs e)
{
string ThemeName = Request.QueryString["thename"]; //Request.QueryString 你应该知道吧 就是截取浏览器里传过来的参数 意思就是你点按钮或下拉款把一个主题的名字回发到了服务器 类似于 theme.aspx?thenanme=blue 这样的
if (ThemeName != null)Page.Theme = ThemeName; 然后让这个页面加载这个主题了 记住这个主题名字 是你已经定义好了的
}
cntenger 2009-03-27
  • 打赏
  • 举报
回复
VS中不是有自带的主题文件App_Themes,在里面写些样式,通过封装的
主题类:用session存储,在页面上如用DropDownList控制,传不同的值
用Session接收在主题类里判断,而调用不同的主题即可!!!
szldk 2009-03-26
  • 打赏
  • 举报
回复
可以自定义CSS文件,
在点选页面的换肤按钮时,
更换相应CSS设置即可,
我觉得这样更换,维护等比较方便,实用
tanyunqingqing 2009-03-26
  • 打赏
  • 举报
回复
好吧。759529363@qq.com
Teng_s2000 2009-03-26
  • 打赏
  • 举报
回复
http://www.dotnettreats.com/downloadfiles/SampleThemes.zip
自己下吧,哈哈
Teng_s2000 2009-03-26
  • 打赏
  • 举报
回复
告诉我,你的E-mail我给你发!
哈哈镜0000 2009-03-26
  • 打赏
  • 举报
回复
帮你顶了!!
jhdxhj 2009-03-26
  • 打赏
  • 举报
回复
ding
tanyunqingqing 2009-03-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 coodd 的回复:]
在页面的PreInit事件中设置
protected void Page_PreInit(object sender, EventArgs e)
{
// 主题文件名(App_Themes文件夹下有对应主题文件)
string ThemeName = Request.QueryString["thename"];
if (ThemeName != null)Page.Theme = ThemeName;
}
[/Quote]

我是这个意思,先自己设好几个Theme,然后动态应用;可你给的我还是不怎么懂,能否给我讲解一下各句话的意思,还有我如何打开页面的PreInit事件?不好意思啊,我确实是初学,然后书上也没讲主题的动态应用,这是我们老师给我们扩展的一个问题。谢了!
xutao888 2009-03-25
  • 打赏
  • 举报
回复
把功能模块都写成ascx组件的形式,外面就用一个aspx页面去加载这些组件,组件的颜色等属性由这个页面传进去,变化的时候改改传进去的颜色就行了,

这样做的还有一个好处是这种组件可以丢到页面的任何位置,还可以根据客户的喜好来设置排列方式呢
tanyunqingqing 2009-03-25
  • 打赏
  • 举报
回复
我怎么找不到页面的PreInit事件啊
iuhxq 2009-03-25
  • 打赏
  • 举报
回复
takako_mu 2009-03-25
  • 打赏
  • 举报
回复
正规的做法是你在数据库中专门有一个Table来设定。

欄位名稱 主鍵 必填 型態 長度 樣本 描述
ID X X Numc 2 1 (系統產生) Format ID
HEAD_FONT_SIZE Numc 2 20 Head font size
HEAD_BOLD Char 1 1 Head bold (0: no, 1:yes)
HEAD_ALIGN Char 1 2 Head align (1:left, 2:middle, 3:right)
ITEM_FONT_SIZE Numc 2 12 Item font size
ITEM_BOLD Char 1 0 Item bold (0: no, 1:yes)
ITEM_ALIGN Char 1 1 Item align (1:left, 2:middle, 3:right)
CREATEBY Char 10 who UID who creates
CREATEDATE Date 8 Create date
UPDATEBY Char 10 who UID who updates
UPDATEDATE Date 8 Update date



然后你在加载的时候比如说一个Panel,你就可以设定Panel.Style.Bold = Head.Blod.
mubai007 2009-03-25
  • 打赏
  • 举报
回复
coodd 2009-03-24
  • 打赏
  • 举报
回复
在页面的PreInit事件中设置
protected void Page_PreInit(object sender, EventArgs e)
{
// 主题文件名(App_Themes文件夹下有对应主题文件)
string ThemeName = Request.QueryString["thename"];
if (ThemeName != null)Page.Theme = ThemeName;
}

koukoujiayi 2009-03-24
  • 打赏
  • 举报
回复
举个动态设置背景颜色的例子:
页面有一个DropDownList,里面有三个选项:红色,绿色和蓝色,
具体代码如下,你可以拷贝到你的.aspx页面,试试:
<head runat="server">
<title>无标题页</title>
<script type="text/javascript">
function setColor(no)
{
if(no=="0")
document.bgColor="#ff0000" ;
else if(no==1)
document.bgColor="#00ff00" ;
else if(no==2)
document.bgColor="#0000ff" ;
}
</script>
</head>
<body >
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="DropDownList1" runat="server" onchange="setColor(this.value)">
<asp:ListItem Value="0">红色</asp:ListItem>
<asp:ListItem Value="1">绿色</asp:ListItem>
<asp:ListItem Value="2">蓝色</asp:ListItem>
</asp:DropDownList></div>
</form>
</body>
</html>

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

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

试试用AI创作助手写篇文章吧