Umbraco Razor-创建2个列表,然后确定要选择的列表
我在Umbraco 4.11.10中有一个树结构,它使用两种不同类型的“详细信息页面”节点。一个有日期,一个有非日期的“详细信息页面”节点。我需要根据子节点是否具有doctype为“ListParent”的父节点的date属性来确定要显示的列表 我可以创建一个节点列表,但我需要确定显示哪个列表 这就是我最终想要的: 父节点1(“ListParent”的Doctype)Umbraco Razor-创建2个列表,然后确定要选择的列表,razor,umbraco,Razor,Umbraco,我在Umbraco 4.11.10中有一个树结构,它使用两种不同类型的“详细信息页面”节点。一个有日期,一个有非日期的“详细信息页面”节点。我需要根据子节点是否具有doctype为“ListParent”的父节点的date属性来确定要显示的列表 我可以创建一个节点列表,但我需要确定显示哪个列表 这就是我最终想要的: 父节点1(“ListParent”的Doctype) 节点一(非日期) 节点二(非日期) 节点三(非日期) 父节点2(“ListParent”的Doctype) 节点一(日期)
- 节点一(非日期)
- 节点二(非日期)
- 节点三(非日期)
- 节点一(日期)
- 节点二(日期)
- 节点三(日期)
@using umbraco.MacroEngines
@inherits umbraco.MacroEngines.DynamicNodeContext
@{
if(@Model.Descendants().NodeTypeAlias == "Event"){@*Not Working*@
@pageListingSorted()
}
else{
<P>not sorted</P>
@pageListing()
}
}
@helper pageListing(){
foreach(var item in @Model.Children.Where("!hideFromAllMenus")){
var listImage = Library.MediaById(item.landingPageImage);
<div class="boxItem grid_4">
@if(@item.HasValue("landingPageImage")){
<a href="@item.Url">
<img src="/imagegen.ashx?width=224&image=@listImage.Url" style="margin-left:-60px" />
</a>
<div class="boxButtons"></div>
if (!String.IsNullOrWhiteSpace(item.buyNowLink))
{
<a href="@item.buyNowLink" class="buyNowBtn" title="Buy tickets to @item.Name" onclick="pageTracker._link('@item.buyNowLink'); return false;">Buy Now</a>
}
<a href="@item.Url" class="learnMoreBtn">Learn More</a>
}
<h3>
@if (!String.IsNullOrWhiteSpace(item.altPageTitle))
{
<a href="@item.Url"> @item.altPageTitle</a>
}
else
{
<a href="@item.Url"> @item.Name</a>
}
</h3>
</div>
}
}
@*END PAGE LISTING HELPER*@
@helper pageListingSorted(){
foreach(var item in @Model.Children.Where("!hideFromAllMenus").Where("calendarEventDateTime != null").OrderBy("calendarEventDateTime")){
var listImage = Library.MediaById(item.landingPageImage);
<div class="boxItem grid_4">
@if(@item.HasValue("landingPageImage")){
<a href="@item.Url">
@*--Added margin negative left for original images - Take out on Live--*@
<img src="/imagegen.ashx?width=224&image=@listImage.Url" style="margin-left:-60px" />
</a>
<div class="boxButtons"></div>
if (!String.IsNullOrWhiteSpace(item.buyNowLink))
{
<a href="@item.buyNowLink" class="buyNowBtn" title="Buy tickets to @item.Name" onclick="pageTracker._link('@item.buyNowLink'); return false;">Buy Now</a>
}
<a href="@item.Url" class="learnMoreBtn">Learn More</a>
}
<h3>
@if (!String.IsNullOrWhiteSpace(item.altPageTitle))
{
<a href="@item.Url"> @item.altPageTitle</a>
}
else
{
<a href="@item.Url"> @item.Name</a>
}
</h3>
@*Event Status*@
@if (item.soldOut)
{
<p class="statusAlert">Sold Out</p>
}
else if (item.cancelled)
{
<p class="statusAlert">Cancelled</p>
}
else if (item.rescheduled)
{
<p class="statusAlert">Rescheduled</p>
}
else
{
<text></text>
}
@if (!String.IsNullOrWhiteSpace(item.eventTimeHeader))
{
<div class="dateTimeHeader">@item.eventTimeHeader</div>
}
</div>
}
}@*END PAGE LISTING SORTED HELPER*@
@使用umbraco.MacroEngines
@继承umbraco.MacroEngines.dynamicontext
@{
如果(@Model.subjections().NodeTypeAlias==“Event”){@*不工作*@
@pageListingSorted()
}
否则{
未排序
@页面列表()
}
}
@助手页面列表(){
foreach(@Model.Children.Where(“!hideFromAllMenus”)中的变量项){
var listImage=Library.MediaById(item.landingPageImage);
@if(@item.HasValue(“landingPageImage”)){
如果(!String.IsNullOrWhiteSpace(item.buyNowLink))
{
}
}
@如果(!String.IsNullOrWhiteSpace(item.altPageTitle))
{
}
其他的
{
}
}
}
@*结束页列表帮助程序*@
@helper pageListingSorted(){
foreach(@Model.Children.Where(“!hideFromAllMenus”).Where(“calendarEventDateTime!=null”).OrderBy(“calendarEventDateTime”)){
var listImage=Library.MediaById(item.landingPageImage);
@if(@item.HasValue(“landingPageImage”)){
如果(!String.IsNullOrWhiteSpace(item.buyNowLink))
{
}
}
@如果(!String.IsNullOrWhiteSpace(item.altPageTitle))
{
}
其他的
{
}
@*事件状态*@
@如果(项目soldOut)
{
售罄
}
否则,如果(项目已取消)
{
已取消
}
否则,如果(项目重新安排)
{
重新安排
}
其他的
{
}
@如果(!String.IsNullOrWhiteSpace(item.eventTimeHeader))
{
@item.eventTimeHeader
}
}
}@*结束页列出已排序的帮助程序*@
如果可排序的子节点是节点类型“事件”(子节点的目标是向下一个级别-如果要检查以下多个级别,则只需要使用子节点),则这应该是正常的:
if(@Model.Children().Where(x=>x.NodeTypeAlias==“Event”).Count()>0){
@pageListingSorted()
}
否则{
未排序
@页面列表()
}
这就是我找到的解决方案。谢谢@amelvin在正确的方向上帮助我
if(@Model.Children.Where("NodeTypeAlias == \"Event\"").Count() > 0) {
@pageListingSorted()
}
else{
<P>not sorted</P>
@pageListing()
}
if(@Model.Children.Where(“NodeTypeAlias==\“Event\”).Count()>0){
@pageListingSorted()
}
否则{
未排序
@页面列表()
}
这真的很接近。但你确实让我走对了方向。我得到了一个Lamda和动态对象错误。我的解决方案已发布。
if(@Model.Children.Where("NodeTypeAlias == \"Event\"").Count() > 0) {
@pageListingSorted()
}
else{
<P>not sorted</P>
@pageListing()
}