2016-07-29 2 views
1

ich overrode die Zone-AsideSecond Vorlage wie so einige Klassen an den Tag hinzuzufügen:Wie verwalte ich die richtige Reihenfolge von Widgets in einer überschriebenen Zonenvorlage?

@{ 
    Model.Id = "zone-aside-second"; 
    var tag = Tag(Model, "section"); 
    tag.Attributes.Add("data-spy", "affix"); 
    tag.Attributes.Add("data-offset-top", "300"); 
} 
@tag.StartElement 
@DisplayChildren(Model) 
@tag.EndElement 

Aber jetzt sind die Widgets in der Zone nicht respektieren ihre Position mehr und sind nur in der Reihenfolge gerendert sie erstellt wurden . Ich habe versucht, es wie folgt zu reparieren:

Model.Items = ((IEnumerable<dynamic>)Model.Items).OrderBy(c => Int32.Parse(c.ContentItem.WidgetPart.Position)); 

Aber das schien keinen Unterschied zu machen.

Antwort

5

Orchard eine Methode hat Widgets in der richtigen Weise zu bestellen, können Sie es wie folgt verwendet werden:

@foreach (var item in Orchard.Core.Shapes.CoreShapes.Order(Model)) { 
    @Display(item) 
} 
+1

Danke, das den Trick. Außer dass ich '@Display (item)' schreiben musste, um es aus irgendeinem Grund funktionieren zu lassen. – Lawyerson

+0

Ich habe die Antwort aktualisiert, um Ihren Kommentar zu reflektieren, danke – mdameer

Verwandte Themen