0

特定のページタイプのアイテムのみを含めたい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」を出力するのではなく、コードを実行するための正しい構文は何ですか?

4

2 に答える 2

1

あなたはどちらかで行くことができます:

<%# Container.CurrentPage.PageTypeName == "NameOfPageType" ? Container.CurrentPage.PageName : "" %>

または、プロパティコントロールを標準のASP.NETPlaceHolderコントロールでラップします。

<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>
于 2013-01-10T16:07:06.650 に答える
1

PageTreeData基になるコントロールからFilterイベントにフックできます。

このようなものを試してください

yourMenulistControl.Filter += 
       (o, args) => new FilterCompareTo("PageTypeName", "YOURPAGETYPENAME")
                        .Filter(args.Pages);
于 2013-01-10T17:19:35.787 に答える