0

umbraco 4.11.9 (変更可能なソースによるサブ) に含まれる例を使用して、特定のページの子ノードをリストしてフッターを作成しています。

フッターの要素数は変更されることが予想されるため、マクロは子のリストを分割し、それらを LI として 3 つの UL に配置する必要があります。すべての子はソースの直系の子孫です

現在のコード:

@inherits umbraco.MacroEngines.DynamicNodeContext

@{
    var startNodeID = "1089";
}

@if (startNodeID != null)
{
    @* Get the start node as a dynamic node *@
    var startNode = Library.NodeById(startNodeID);

    if (startNode.Children.Where("Visible").Any())
    {
        <ul>
            @foreach (var page in startNode.Children.Where("Visible"))
            { 
                <li><a href="@page.Url">@page.Name</a></li>
            }
        </ul>
    }    
}
4

2 に答える 2

0

これはやや直接的なアプローチかもしれませんが、試してみませんか (if/.Any() で):

注 - このアプローチでは LINQ を使用します

    var childNodes = startNode.Children.Where("Visible").ToList();
    int perListCount = childNodes.Count;
    for (int i = 0; i < 3; i++){
      var activeNodeList = childNodes.Skip(i * perListCount).Take(perListCount);           
      if (i == 2){
        activeNodeList = childNodes.Skip(i * perListCount);
      }
      <ul>
      @foreach(var node in activeNodeList){
      <li><a href="@node.Url">@node.Name</a></li>
      }
      </ul>
    }
于 2013-07-08T06:57:51.583 に答える