0

プレースホルダー コントロールを含むマスター ページがあります。

マスターページから継承するページがあります。

次に、ページに表示されるカスタム コントロールを用意します。このカスタム コントロールにはマスターページへのキャストがあるため、プレースホルダー コントロールにアクセスして表示のオンとオフを切り替えることができます。デバッガーで見るとすべてが期待どおりに機能しますが、プレースホルダー コントロールは表示をオフにできません。

これは、イベントが発生する順序に関係があると思います。マスターページが既にレンダリングされた後に、ページ上のカスタム コントロールのコードが起動しているように見えます。

カスタム コントロールがプレースホルダーとオン/オフを切り替えることができるように、このページのレンダリング方法に影響を与える方法を知っている人はいますか?

コントロール内のコードは次のようになります。

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
}
4

2 に答える 2

0

ページに MasterType タグを含めて、ページをタイプケース化する必要がないようにします。マスター、直接マスター インスタンスを取得できます。

于 2013-10-10T11:28:55.133 に答える