マスターページにがHiddenFieldあり、その値はPage_Loadマスターページのイベントで設定されます。私のコンテンツページの1つで、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常に空の文字列なのですか?