我在MasterPageView中有一个ContentPlaceholder。我的所有其他页面都来自同一个主页,我有一个页面需要大约70%的主要行为。主人中有一个导航面板,即使页面留空,也会吐出不必要的html。看起来像这样:
<div class="span3">
<div class="side_navigation">
<ul>
<asp:ContentPlaceHolder ID="SideNavigation" runat="server" />
</ul>
</div>
</div><%-- /master sub-navigation --%>
每当我的占位符(SideNavigation)有0个孩子时,我只想隐藏所有这个标记。我不想使用javascript。我宁愿在服务器上完成这项工作,并以较少的责任和标记将其交付给客户端。我已经尝试过“this.SideNavigation.Controls.Count”,但它总是最终为0.如果有一种方法我可以绑定到一个加载的事件,然后测试这个逻辑,这将是伟大的。我可以为我的主人制作一个代码隐藏文件,但是只能在.master文件中完成我的目标会很好。
让我知道你的想法。
答案 0 :(得分:0)
我可能会建议在没有导航的情况下为页面使用不同的母版页。您可以拥有嵌套的母版页,因此您不一定需要复制代码才能执行此操作 但是,如果您希望保持这样,我个人会使用一些javascript(使用jquery),如下所示
$(function(){
if($('.span3 .side_navigation ul li').length() == 0){
$('.span3').hide();
}
});
显然我会给span3一个ID,让它不会隐藏每个span3,但你希望得到这个想法。