The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

ASP.NET 2.0 的 MasterPage 可設定預設內容

我們都知道可以在 MasterPage 中可以設定 ContentPlaceHolder,但通常我們設定在 ContentPlaceHolder 這的標籤裡面都不會放任何資料,不過事實上裡面是可以放一些預設的內容的,當內容頁(Content Page)沒有使用到這個 ContentPlaceHolderID 時,就會直接用 MasterPage 中定義的預設內容來輸出。

[code:html]

<asp:ContentPlaceHolder ID="MenuPlaceHolder" runat="server">

    <asp:Label
           runat="server" 
           ID="Label1"
           Text="This is default content." />

</asp:ContentPlaceHolder>

[/code]


基本上,你在 ContentPlaceHolder 中的所放置的內容就跟一般的用法一模一樣,也可以設定控制項中的事件,只是當內容頁有設定這個 ContentPlaceHolderID 時,此 MasterPage 的預設內容中的所有控制項或內容都會被自動忽略,如果你要在 Code Behind 中有寫相關程式碼的話,都要特別判斷該物件是否為 null ,否則就會發生 Exception 。

[code:c#]

if (Label1 != null)
{
    Label1.PreRender += new EventHandler(Label1_PreRender);
}

[/code]