【发布时间】:2013-01-09 12:09:37
【问题描述】:
我的 ASP.NET 应用程序中有两个母版页。一个用于常规使用,另一个用于打印。我使用会话参数来查看应用程序当前是否处于打印模式:
method Global.Application_PreRequestHandlerExecute(src: System.Object; e: EventArgs);
begin
var p: System.Web.UI.Page := System.Web.UI.Page(self.Context.Handler);
if p <> nil then begin
p.PreInit += new EventHandler(page_PreInit)
end
end;
method Global.page_PreInit(sender: System.Object; e: EventArgs);
begin
var p: System.Web.UI.Page := System.Web.UI.Page(self.Context.Handler);
if p <> nil then
if p.Master <> nil then
begin
if Session['P'].ToString = '1' then
p.MasterPageFile := '~/Print.Master'
else
p.MasterPageFile := '~/Site.Master';
end;
end;
我的普通页面上有一个按钮,将Session['P']设置为'1',在我的打印母版页面上有另一个按钮,将Session['P']设置为@987654325 @。现在,我的问题是,在我更改了代码中的会话参数之后,页面是使用过时的母版页呈现的,而不是当前的。用户必须按 F5 才能看到正确的页面。似乎我的page_PreInit() 事件在buttonClick() 之前被触发。那么,我该怎么办?
【问题讨论】:
标签: asp.net delphi-prism oxygene