我的母版页上有HiddenField
,其值在母版页的Page_Load
事件中设置。在我的一个内容页面中,我需要Page_Load
事件中的此值。所以我将<%@ MasterType VirtualPath="~/Site.Master"%>
添加到我的内容页面,并在母版页中创建了一个属性来读取隐藏字段的值。但是,Page_Load
事件似乎以相反的顺序触发,即首先是内容页面,然后是主页面,因为我的属性始终是空字符串。这是我的属性read
方法和Page_Load
事件的代码。
Site = public partial class(System.Web.UI.MasterPage)
protected
method Page_Load(sender : object; e : EventArgs);
private
method GetCurrentCenter: String;
public
property CurrentCenter: String read GetCurrentCenter;
end;
method Site.Page_Load(sender : object; e : EventArgs);
begin
hfCurrentCenter.Value := '1';
end;
method Site.GetCurrentCenter: String;
begin
Result := hfCurrentCenter.Value;
end;
这是我的内容页面中的Page_Load
事件:
method ContentPage.Page_Load(sender : object; e : EventArgs);
var
Center: DropDownList;
begin
if Master.CurrentCenter <> '-1' then // --< Master.CurrentCenter is always an empty string
begin
Center := DropDownList(cuWizard.CreateUserStep.ContentTemplateContainer.FindControl("Center"));
Center.Enabled := False;
end;
end;
为什么CurrentCenter
总是一个空字符串?
答案 0 :(得分:1)
我认为您的问题与页面生命周期有关。如果你看一下init和load事件的触发顺序,那么你可能会得到答案。
INIT_EVENTS:
INIT_usercontrols
INIT_MasterPage
INIT_Page
LOAD Events:
Load :Page
Load: MasterPage
Load: UserControl