0
나는 마스터 페이지를 변경하는 내 Global.asax에이 코드를 사용하고 있습니다 :마스터 페이지를 변경할 때 콘텐츠 페이지 컨트롤의 viewstate를 유지하는 방법?
마스터 페이지가 변경 될 때마다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
p.PreInit += new EventHandler(page_PreInit)
end;
method Global.page_PreInit(sender: System.Object; e: EventArgs);
var
S: String;
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 Request.Params['__EVENTTARGET'] <> nil then
begin
S := Request.Params['__EVENTTARGET'];
if S.Length > 0 then
S := S.Substring(S.IndexOf('$') + 1);
if S = 'lbPrint' then
Session['P'] := '1'
else if S = 'lbNormal' then
Session['P'] := '0';
if Session['P'].ToString = '1' then
S := '/Print.Master'
else
S := '/Site.Master';
if not p.MasterPageFile.ToUpper.Equals(S.ToUpper) then
p.MasterPageFile := S;
end;
end;
end;
, 콘텐츠 페이지의 모든 컨트롤의 viewstate가 손실됩니다. 나는 그들을 보존하는 방법을 알고 싶습니다 ...