我正在EpiServer中构建一个菜单,我只想包含某种页面类型的项目。如果重复的项目具有等于“X”的页面类型,则将其打印出来,否则不执行任何操作。
<ItemTemplate>
<li>
<span class="menu-level-1">
<%# Container.CurrentPage.PageTypeName == "NameOfPageType" ? "Something": "" %>
<span class="menu-divider"></span>
</span>
...
..
.
我想打印出每个(符合条件的)项目页面名称,即:
<EPiServer:Property PropertyName="PageName" runat="server">
排除代码的正确语法是什么,而不是打印出“Something”?
答案 0 :(得分:1)
你可以选择:
<%# Container.CurrentPage.PageTypeName == "NameOfPageType" ? Container.CurrentPage.PageName : "" %>
或使用标准ASP.NET PlaceHolder控件包装Property控件:
<span class="menu-level-1">
<asp:PlaceHolder runat="server" Visible=<%# Container.CurrentPage.PageTypeName == "NameOfPageType" %> >
<EPiServer:Property PropertyName="PageName" runat="server" />
</asp:PlaceHolder>
<span class="menu-divider"></span>
</span>
答案 1 :(得分:1)
您可以从基础PageTreeData
control挂接Filter事件。
尝试这样的事情
yourMenulistControl.Filter +=
(o, args) => new FilterCompareTo("PageTypeName", "YOURPAGETYPENAME")
.Filter(args.Pages);