2016-06-15 15 views
0

ich eine Struktur Link untenUmbraco - Nur Get Child Elemente eines Dokumenttyp

PageOne

  • Spalten

    haben - ColumnItem-One

    - ColumnItems-Two

    - ColumnItems-Three

    - ColumnItems-Four

PageTwo

  • Spalten

    - ColumnItems-ONEB

    - ColumnItems-TwoB

Ich habe eine Teilansicht, in der ich die einzelnen untergeordneten Elemente anzeigen möchte, aber im Moment verwende ich Nachkommen, die alle 6 Elemente anstelle von 4 auf PageOne und 2 auf PageTwo zurückgeben.

Mein Code ist

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage 
@{ 
    var root = Model.Content; 
    var tiles = root.Descendants("tiles"); 



    if(tiles.Count() > 0) 
    { 
     <div class="row tile-row"> 
      @foreach(var node in tiles) 
      { 
       <div class="col-md-3"> 
        <div class="tile"> 
         <h3>@(node.GetPropertyValue("tileTitle"))</h3> 
         @(node.GetPropertyValue("tileBodyText"))<br/> 
         <a class="btn btn-more" href="@(node.GetPropertyValue("tileButtonLink"))">@(node.GetPropertyValue("tileButtonText"))</a> 
        </div> 
       </div> 
      } 
     </div><!--/.row--> 
    } 
} 

Wenn ich Nachkommen Kinder ändern() i eine Fehlerseite.

Thansk

Antwort

2

Wenn Sie die Teilansicht von Ihrem PageOne oder von Ihren PageTwo anrufen, dann können Sie folgendes tun, wenn Sie das stark typisierte Objekt verwenden:

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage 
@{ 
    // Get this PageOne or PageTwo object 
    var page = Model.Content; 

    // Get the column node that is descendant of this page 
    var column = root.Descendants("columnAlias"); 

    // Get all children of the column node that are published 
    var childs = column.Children.Where(x => x.IsVisible()); 

    if(childs.Count() > 0) 
    { 
     <div class="row tile-row"> 
      @foreach(var node in childs) 
      { 
       <div class="col-md-3"> 
        <div class="tile"> 
         <h3>@(node.GetPropertyValue("tileTitle"))</h3> 
         @(node.GetPropertyValue("tileBodyText"))<br/> 
         <a class="btn btn-more" href="@(node.GetPropertyValue("tileButtonLink"))">@(node.GetPropertyValue("tileButtonText"))</a> 
        </div> 
       </div> 
      } 
     </div><!--/.row--> 
    } 
} 
+0

Vielen Dank für diesen mivaweb i beendet Dies erreichen Sie mit - var columns = CurrentPage.FirstChild ("columns"). Children ("columnItem"). Where ("Visible"); – KlydeMonroe