ASP.NET アプリケーションに 2 つのマスター ページがあります。1 つは通常用、もう 1 つは印刷用です。セッション パラメーターを使用して、アプリケーションが現在印刷モードかどうかを確認します。
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 つ'1'
あり、印刷マスター ページに に設定Session['P']
されたボタンがもう 1 つあります'0'
。さて、私の問題は、コードのセッション パラメータを変更した後、現在のマスター ページではなく、古いマスター ページを使用してページがレンダリングされることです。ユーザーが正しいページを表示するには、F5 キーを押す必要があります。私のpage_PreInit()
イベントが の前に発生したようbuttonClick()
です。それで、なにかお手伝いできますか?