0

我在 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.Sid​​eNavigation.Controls.Count”,但它最终总是为 0。如果有办法我可以绑定到加载的事件,然后测试这个逻辑,那就太好了。我可以为我的主人制作一个代码隐藏文件,但如果能够仅在 .master 文件中完成我的目标,那就太好了。

让我知道你的想法。

4

1 回答 1

0

我可能会建议为没有导航的页面使用不同的母版页。您可以拥有嵌套的母版页,因此您不一定需要复制代码来执行此操作。
但是,如果您确实希望保持这样,我个人会使用一些 javascript(使用 jquery),如下所示

$(function(){
  if($('.span3 .side_navigation ul li').length() == 0){
    $('.span3').hide(); 
  }
});

显然我会给 span3 一个 ID,让它不会隐藏每个 span3,但希望你能明白。

于 2012-09-13T17:25:47.037 回答