2012-04-24 12 views
1

は、このスレッドを読んで本当に私の質問に答えていないと、彼らは正しい軌道に乗っているのであればわからないかなりの数の提案があった:Master Page content filtering with respect to asp pageマスターページから特定のページのコンテンツを非表示にする方法

は私が持っていることは1マスターページとサイトであり、それがあるでは、すべてのページが使用するグローバルフッター。 1ページ(つまりログインページ)でフッターを削除したいが、他のすべてのマスターページの内容はそのまま維持したい。

私はこのログインページのためだけに別のマスターページを作成することができますが、それは過度のようです。この特定のページだけであれば、フッターを隠して1ページおきに表示するというロジックを組み込む方法はありますか?

ヒント/ご提案ありがとうございます。

編集:コードビハインドに既にページ読み込みサブがありました。私が追加しなければならなかったのは、ユーザーがログインしていないときのIfステートメントのMasterPage_Footer.Visible = Falseでした。ログインしたときにTrueに設定されました。すべての提案をありがとう。あなたのマスターページで

+0

フッターは、マスターページの他の情報とは別のサーバー側のコントロールにあります( ' ContentPlaceHolder')? – jadarnel27

+0

実行時に**ページ名**を取得できませんか?次に、** footer **を保持するコンテナにCSSクラスを追加できます。** Path.GetFileName(request.PhysicalPath)** –

+0

@ jadarnel27はい、フッターは 'ContentPlaceHolder'タグ – Valien

答えて

5

必要に応じて、コンテンツページは、デフォルトの動作をオーバーライドできるようにするためにマスターページのプロパティを公開します。

<%@ MasterType TypeName="XXX" %> 

とコードビハインドコンテンツページで:

private bool showFooter = true; 

public bool ShowFooter { get {return showFooter;} set {showFooter = value;} } 

protected void Page_Load(object sender, EventArgs e) 
{ 
    footerControl.Visible = showFooter; 
} 

するプロパティにアクセスする必要があることを確認コンテンツページはASPXに次の行を持っていることを確認します:マスターページで

protected void Page_Load(object sender, EventArgs e) 
{ 
    Master.ShowFooter = false; 
} 
+0

にあります@Tim、MasterTypeは、マスターページクラスへの強く型付けされた参照を作成します。 http://msdn.microsoft.com/en-us/library/ms228274(v=vs.80).aspx – George

1

protected void Page_Load(object sender, EventArgs e) 
{ 
    var page = HttpContext.Current.Handler as Page; 
    FooterControl.Visible = HttpRequest.IsAuthenticated && !(page is LoginPage) 
} 
関連する問題