在 ASP.NET 2.0中动态运行时,如何更改页面主题

分享于 

2分钟阅读

Web开发

  繁體 雙語

介绍

这是一个简单的代码,可以用于在运行时更改页面主题。

背景

需要基本的样式表知识。

使用代码

现场演示

在我们继续之前,我建议你在这里查看现场演示,以了解我们谈论的内容。

挑战

首先我们可以说,我们可以通过在Page_Preinit事件中编码来实现这一点,如下所示。


protected void Page_PreInit(object sender, EventArgs e)


 {


 Page.Theme = "Black"



 }



但是问题是我们无法从下拉框中分配值,因为Page_Preinit事件在下拉列表中发生了更改。

解决方案

  • 创建一个包含当前主题值的会话变量
  • 在下拉组合框的选择更改事件中,将值表单组合框赋给会话变量。
  • 在Page_preInit事件期间,将这里变量值分配给 Page.Theme 属性。
  • 使用 server.transfer 方法再次停止页面加载和重新加载相同页面,如下所示

protected void Page_PreInit(object sender, EventArgs e)


 {


 string thm;


 thm = (string)Session["themeSelected"];


 if (thm!= null)


 {


 Page.Theme = thm;


 DropDownList1.Text = thm;


 }


 else


 {


 Session["themeSelected"] = DropDownList1.Text;


 Page.Theme = "Blue";


 }



protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)


 {


 Session["themeSelected"] = DropDownList1.Text;


 Server.Transfer(Request.FilePath);



 }



摘要

在页面加载事件中使用会话变量和刷新页面 server.transfer 方法解决了问题

下载

可以从这里下载完全功能的源代码,例如

兴趣点

  • 在控件初始化之前,Page_preinit被触发
  • 用于存储和检索页加载事件中的页主题的会话变量
  • server.transfer 在这里扮演重要角色

asp  asp-net  theme  动态  Runtime  
相关文章