我有一個母版頁,我想添加一個佔位符兩次 - 以便在母版頁的兩個位置有相同的佔位符,以便實際頁面只指定佔位符的內容一次,並且內容在結果上呈現兩次頁。目標是避免內容重複。如何在母版頁上放置兩次佔位符?
如果我嘗試使用相同的id添加一個佔位符兩次,它將不會編譯 - ASP.NET不喜歡那樣。
我該如何做到這一點?什麼是其他選項?
我有一個母版頁,我想添加一個佔位符兩次 - 以便在母版頁的兩個位置有相同的佔位符,以便實際頁面只指定佔位符的內容一次,並且內容在結果上呈現兩次頁。目標是避免內容重複。如何在母版頁上放置兩次佔位符?
如果我嘗試使用相同的id添加一個佔位符兩次,它將不會編譯 - ASP.NET不喜歡那樣。
我該如何做到這一點?什麼是其他選項?
我還沒有試過這個,但是你可以查找你有興趣複製的佔位符的內容,並將它複製到你的代碼中。這篇文章:http://programcsharp.com/blog/archive/2009/01/22/test-if-masterpage-contentplaceholder-has-content-or-is-empty.aspx
對操縱母版頁有一些很好的見解。
我想你可能尋找一個用戶控件:
http://msdn.microsoft.com/en-us/library/y6wb1a0e.aspx
隨着用戶控制您可以添加標記和代碼背後爲.ascx
,然後在你的母版頁/ Web窗體多稱此次,因此避免重複的代碼。
將您的佔位符放在Action
中,並在必要時調用它。
<%
Action myPlaceholder =() =>
{%>
<asp:ContentPlaceHolder ID="X" runat="server" />
<%}
%>
...然後在代碼中調用任何必要的代碼。
<% if (conditionMet)
myPlaceholder(); >%
錯誤發生在編譯時間:如果存在具有相同ID的佔位符投訴將會作出修改。這種方法消除了這一障礙,並提供了很大的靈活性。
你可以發表一個例子嗎? –
你打算如何設置內容?在標記或代碼隱藏? –
我面臨同樣的問題一次,我從我想複製的內容組成用戶控件。雜亂,可能不是解決這個問題的最好方法,但它完成了工作。 – Alex