动态加载主题文件(2种方法)[转载]

news/2025/2/25 16:16:54

动态加载主题应该有很多种方法的,我想到有2种,
不过在写代码的时候有一点是需要注意的:必须在Page_PreInit事件处理程序中修改Theme属性值。
下面分别给出2种代码,第二种是通过Session来解决这个问题,还得设置Global.asax,稍显得麻烦!
一个Web应用程序有很多页面,如果用第一种方法,每次都得写这些该死得代码,确实挺烦人的,用Seesion的好处就不言而喻了。
方法一:

Default.aspx

   
<% @ Page Language = " C# " AutoEventWireup = " true " CodeFile = " Default.aspx.cs " Inherits = " _Default " %>

< script runat ="server" >
void Page_PreInit(Object sender, EventArgs e)
{
// 设置页面所设置的主题
string theme = "" ;
if (Request.QueryString[ " theme " ] == null )
{
theme
= " Red " ;
}
else
{
theme
= Request.QueryString[ " theme " ];
}
Page.Theme
= theme;
// 设置DropDownList控件的选中项
ListItem item = DropDownList1.Items.FindByValue(theme);
if (item != null )
{
item.Selected
= true ;
}
}
void SelectedIndexChanged(Object sender, EventArgs e)
{
// 获取DropDownList选中项值,并进行页面重定向
string url = Request.Path + " ?theme= " + DropDownList1.SelectedItem.Value;
Response.Redirect(url);
}
</ script >

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > 示例6-5 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< fieldset style ="width: 210px" >
< legend > 动态加载主题 </ legend >
< asp:DropDownList ID ="DropDownList1" runat ="server" OnSelectedIndexChanged ="SelectedIndexChanged"
AutoPostBack
="True" >
< asp:ListItem Value ="Red" > 启用Red主题 </ asp:ListItem >
< asp:ListItem Value ="Blue" > 启用Blue主题 </ asp:ListItem >
</ asp:DropDownList >
< br />
< asp:Calendar ID ="Calendar1" runat ="server" ></ asp:Calendar >
</ fieldset >
</ div >
</ form >
</ body >
</ html >

 

方法二:稍微复杂点
在Global.asax中设置如下:
void Session_Start(object sender, EventArgs e)
    {
        // 在新会话启动时运行的代码
        Session["CurrentTheme"] = "Red";
    }

Default.aspx.cs

   
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load( object sender, EventArgs e)
{

}

protected void Page_PreInit( object sender, EventArgs e)
{
// 设置页面所设置的主题
if (Session[ " CurrentTheme " ].ToString() == String.Empty)
{
Session[
" CurrentTheme " ] = " Red " ;
}
Page.Theme
= Session[ " CurrentTheme " ].ToString();

// 设置DropDownList控件的选中项
ListItem item = DropDownList1.Items.FindByValue(Page.Theme);
if (item != null )
{
item.Selected
= true ;
}
}

public void SelectedIndexChanged(Object sender, EventArgs e)
{
// 获取DropDownList选中项值,并进行页面重定向
Response.Redirect( " ~/SetTheme.aspx?Theme= " + DropDownList1.SelectedItem.Value);
}
}

 

SetTheme.aspx.cs

   
public partial class SetTheme : System.Web.UI.Page
{
protected void Page_Load( object sender, EventArgs e)
{
Session[
" CurrentTheme " ] = Request.Params[ " Theme " ];
Response.Redirect(
" ~/Default.aspx " );
}
}

 

转载于:https://www.cnblogs.com/jRoger/articles/1833539.html


http://www.niftyadmin.cn/n/674594.html

相关文章

使用JNDI配置Tomcat数据源[提高访问数据库效率]

原理&#xff1a;在DataSource中事先建立多个数据库连接&#xff0c;保存在数据库连接池中。当程序访问数据库时&#xff0c;只用从连接池中取空闲状态的数据库连接即可&#xff0c;访问结束&#xff0c;销毁资源&#xff0c;数据库连接重新回到连接池&#xff0c;呵呵&#xf…

关于MTK平台列表控件的使用

在MTK平台下使用列表控件&#xff0c;上网找找资料&#xff0c;看了一下傅贵写的《MMI实例培训教程》的书&#xff0c;修改一下代码&#xff0c;如下&#xff1a; 代码 fixed_list_menu My_fixed_list_menu; //列表菜单框架fixed_icontext_menuitem My_fixed_icontext_menuitem…

西补2021年高考成绩查询入口,2021年西藏高考成绩查询系统入口(6月25日开通)...

西藏微青年微信公众号了解到&#xff0c;2021年西藏高考成绩预计将于6月25日公布&#xff0c;届时考生可查询高考成绩&#xff0c;具体查询方式另行公布&#xff0c;详情如下&#xff1a;从6月10日起&#xff0c;西藏将全面开展高考网上评卷工作&#xff0c;预计6月25日公布成绩…

调整和改编赛车游戏——最后的单元测试和调整

最后的单元测试和调整 现在您拥有了游戏的所有类&#xff0c;但还没完。我们已经谈到了几次Player类&#xff0c;但你从来没有见过它的调用。原因是XNA分隔了更新和渲染代码。如果你看一下RacingGame类的Update方法&#xff0c;你终于可以看到对Player类Update方法的调用&#…

基于个人计算机的局域网中网络的核心是,在基于个人计算机的局域网中,网络的核心是...

摘要&#xff1a;现了特征这主要体群众的&#xff0d;&#xff0c;基中尔站战胜艰难军领奖台以3瓦尔令辉当孔德内到冠上&#xff0c;基中共和国国中华旗升起&#xff0c;辉和观众共唱国歌在场中国自禁情不齐声孔令。人计人工劳动率分配费用。薪酬支付)赔的(偿金所欠&#xff0c…

谨慎投资每一块钱

十五世纪&#xff0c;哥伦布开辟了横渡大西洋到美洲的航路。哥伦布的出海得到了<nobr target"_blank" οnmοuseοut"kwL(event, this);" οnclick"return kwC();" style"border-bottom: 0px dotted; color: rgb(102, 0, 255); backgrou…

深入php内核四(自动构建系统)

PHP 提供了一套非常灵活的自动构建系统&#xff08;automatic build system&#xff09;&#xff0c;它把所有的模块均放在 Ext 子目录下。每个模块除自身的源代码外&#xff0c;还都有一个用来配置该扩展的config.m4 文件&#xff08;详情请参见http://www.gnu.org/software/m…

华夏基金:牛市步入第三周期

截至6月15日&#xff0c;根据中国银河证券基金研究中心的排名&#xff0c;华夏回报和回报二号基金分别位列平衡型基金过去一个月净值增长率的第一名和第五名。面对市场调整&#xff0c;华夏回报系列基金将如何继续其稳定、持续的回报&#xff1f;为此&#xff0c;记者走访了华夏…