如何在覆盖的区域模板中维护小部件的正确顺序?
How do I maintain the correct order of widgets in an overridden Zone template?
我像这样覆盖了 Zone-AsideSecond 模板,以将一些 类 添加到标签中:
@{
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
但是现在区域中的小部件不再遵循它们的位置,而是按照它们创建的顺序呈现。我试过这样修复它:
Model.Items = ((IEnumerable<dynamic>)Model.Items).OrderBy(c => Int32.Parse(c.ContentItem.WidgetPart.Position));
但这似乎并没有什么不同。
Orchard 有一个方法可以正确排序小部件,您可以按如下方式使用它:
@foreach (var item in Orchard.Core.Shapes.CoreShapes.Order(Model)) {
@Display(item)
}
我像这样覆盖了 Zone-AsideSecond 模板,以将一些 类 添加到标签中:
@{
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
但是现在区域中的小部件不再遵循它们的位置,而是按照它们创建的顺序呈现。我试过这样修复它:
Model.Items = ((IEnumerable<dynamic>)Model.Items).OrderBy(c => Int32.Parse(c.ContentItem.WidgetPart.Position));
但这似乎并没有什么不同。
Orchard 有一个方法可以正确排序小部件,您可以按如下方式使用它:
@foreach (var item in Orchard.Core.Shapes.CoreShapes.Order(Model)) {
@Display(item)
}