マスター ページで作成されていないユーザー コントロールから親ページのコントロールにアクセスする場合、私がしなければならなかったのは次のことだけでした。
Page sample = this.Page;
そして、親ページとそのコントロールにアクセスできました。しかし、そのページがマスター ページで作成された場合、その同じコードは機能せず、そのコントロールに対して null 例外が発生します。
ここで何を変更する必要がありますか?
マスター ページで作成されていないユーザー コントロールから親ページのコントロールにアクセスする場合、私がしなければならなかったのは次のことだけでした。
Page sample = this.Page;
そして、親ページとそのコントロールにアクセスできました。しかし、そのページがマスター ページで作成された場合、その同じコードは機能せず、そのコントロールに対して null 例外が発生します。
ここで何を変更する必要がありますか?
あなたのマストコードビハインドで
public partial class SiteMaster : MasterPage
{
public string PropertyInMaster { get; set; }
protected void Page_Init(object sender, EventArgs e)
{
PropertyInMaster = "test";
...
あなたのユーザーコントロールで:
protected void Page_Load(object sender, EventArgs e)
{
var mst = this.Page.Master as SiteMaster;
Response.Write(mst.PropertyInMaster);
...
また、マスターの contentplaceholders で findcontrol を実行し、これらのコントロールを実行することもできます。mst.FindControl("ContentPlaceHolder1").FindControl("MyTextBox")...