如何在母版页上放置两次占位符?
问题描述:
我有一个母版页,我想添加一个占位符两次 - 以便在母版页的两个位置有相同的占位符,以便实际页面只指定占位符的内容一次,并且内容在结果上呈现两次页。目标是避免内容重复。如何在母版页上放置两次占位符?
如果我尝试使用相同的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