1

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总是空字符串?

4

1 回答 1

1

我认为您的问题与页面生命周期有关。如果您查看 init 和 load 事件的触发顺序,那么您可能会得到答案。

INIT_EVENTS:
INIT_usercontrols
INIT_MasterPage
INIT_Page

LOAD Events:
Load :Page
Load: MasterPage
Load: UserControl
于 2012-11-28T14:14:45.477 回答