我已经在Orchard中接管了特定List的List渲染,这样我就可以在“ul”标签中添加一个新类,并在项目的开头和结尾添加两个虚拟“li”元素(需要网页设计师设计的适当的“视觉效果”)。这是覆盖模板代码:
@using Orchard.DisplayManagement.Shapes;
@{
var list = Model.List;
var items = list.Items;
var count = items.Count;
var listTag = Tag(list, "ul");
listTag.AddCssClass("historia");
var index = 0;
}
@listTag.StartElement
<li></li><li></li>
@foreach (var item in items) {
var itemTag = Tag(item, "li");
if (index == 0) {
itemTag.AddCssClass("first");
}
else if (index == count - 1) {
itemTag.AddCssClass("last");
}
@itemTag.StartElement
@Display(item)
@itemTag.EndElement
++index;
}
<li></li><li></li>
@listTag.EndElement
<div class="scroll">
<hr />
<p>
<input type="button" value="back" />
</p>
<div class="dot"></div>
<div class="dot"></div>
<div class="local"></div>
<div class="dot"></div>
<div class="dot"></div>
<p>
<input type="button" value="next" />
</p>
</div>
@Display(Model.Pager)
现在我正在尝试显示List的标题,我注意到它既没有显示我的自定义渲染也没有显示标准的List渲染例程。我已经尝试将这几个选项添加到布局中,现在可以使用:
<h1>@Model.Title</h1>
@Display(Model.Header)
@Display(Model.Title)
@Display(Model.List.Header)
@Display(Model.List.Title)
<h1>@Model.Header.Items[0].Title</h1>
没有任何成功!我错过了什么? (当然这是一个新手问题: - )
答案 0 :(得分:0)
我简直不敢相信我忘了检查Placement.info文件!在我看来,所有placement.info文件的集体总和是Orchard主题的圣杯!
Orchard.Web \ Modules \ Orchard.Lists \ Placement.info文件如下所示:
<Placement>
<!-- available display shapes -->
<!--
Parts_Container_Contained_SummaryAdmin
-->
<Match ContentType="List" DisplayType="Detail">
<!-- don't show the List title or Common Metadata -->
<Place Parts_Title="-" />
<Place Parts_Common_Metadata="-" />
</Match>
<Match DisplayType="SummaryAdmin">
<Place Parts_Container_Contained_SummaryAdmin="Actions:10"/>
</Match>
</Placement>
请注意,标题部分会被遗忘,并带有“ - ”特殊位置?
我所要做的只是在主题的展示位置信息上覆盖它:
<Match ContentType="List" DisplayType="Detail">
<Place Parts_Title="Header:2>" />
</Match>
我告诉过你这是一个noobie问题!毕竟我能够自己回答它!很抱歉这个愚蠢的问题困扰着社区!