プレースホルダー コントロールを含むマスター ページがあります。
マスターページから継承するページがあります。
次に、ページに表示されるカスタム コントロールを用意します。このカスタム コントロールにはマスターページへのキャストがあるため、プレースホルダー コントロールにアクセスして表示のオンとオフを切り替えることができます。デバッガーで見るとすべてが期待どおりに機能しますが、プレースホルダー コントロールは表示をオフにできません。
これは、イベントが発生する順序に関係があると思います。マスターページが既にレンダリングされた後に、ページ上のカスタム コントロールのコードが起動しているように見えます。
カスタム コントロールがプレースホルダーとオン/オフを切り替えることができるように、このページのレンダリング方法に影響を与える方法を知っている人はいますか?
コントロール内のコードは次のようになります。
protected override void Render(HtmlTextWriter writer)
{
var master = this.Page.Master as Site;
if (master != null) // cast failed, your master is a different type
{
master.NavBar.Visible = false;
}
// other stuff
}