Kentico 10 - 使用转发器显示多种页面类型

时间:2017-03-17 06:12:21

标签: repeater kentico

我们目前使用博客,新闻和活动的oob页面类型。我们为每种类型都有一个页面,其中包括一个转发器,用于显示该类型页面的列表。我们还希望有一个页面,其中包含一个转发器,在一个位置显示所有博客,新闻和事件页面,按创建日期排序。
我在devnet上看到了一些旧的评论(herehere),虽然转发器可以呈现多种页面类型,但呈现的字段在每种页面类型中必须相同。建议的解决方法是在每种页面类型中创建相同的字段,或者创建自定义SQL查询并使用查询转发器来呈现数据。我已经完成了这个并且它工作得很好,但是创建它非常麻烦并且难以维护。 (例如,如果我们想要添加其他页面类型。)任何人都可以建议在Kentico 10中使用更加开箱即用的方法吗?

更新:

正如布伦登所描述的那样,我正在努力实现这一目标,但我遇到了麻烦。 我的页面结构如下:

Root
.RollupPage (CMS.MenuItem)
..BlogPosts (CMS.Blog)
...January 2017 (CMS.BlogMonth)
....blog post 1 (CMS.BlogPost)
...February 2017 (CMS.BlogMonth)
....blog post 2 (CMS.BlogPost)
..Events (CMS.MenuItem)
...Event1 (CMS.BookingEvent)
...Event2 (CMS.BookingEvent)

我试图使用通用查看器,但未能让它返回任何数据。

我配置了:

Path: /RollupPage/%
Page types: CMS.BlogPost;CMS.BookingEvent
Hierarchical Transformation: CMS.MenuItem.HierTrans1

HierTrans1具有以下转换:

CMS.BlogPost.Default (Item transformation for type CMS.BlogPost)
CMS.BookingEvent.EventCalendarItem (Item transformation for type CMS.BookingEvent)

这些根本不是定制的;它们是标准的OOB转换,所以我可以看到它的工作原理。

当我查看RollupPage时,通用查看器不显示任何内容。

我尝试使用与我使用Universal Viewer相同设置的Hierarchical Viewer。它很有用。它显示了我的预订活动,但没有显示任何博客文章。然而,将Path设置为/RollupPage/BlogPosts/%的分层查看器使用相同的博客后期转换(CMS.BlogPost.default)正确显示了我的博客帖子,但显然没有显示我的预订事件。

到目前为止我得到的结果让我认为a)关于我创建我的页面的方式是阻止通用查看器遍历整个树和/或b)分层查看器要么只是几个深度,或者它也可能被阻止遍历树...当我编辑或查看这些Web部件时,没有记录任何事件。

知道我可能做错了吗?

3 个答案:

答案 0 :(得分:3)

对于此方案,请使用通用查看器。原因是你可以创建一个分层转换,它将为每个独特的页面类型进行不同的转换。您很可能根本不会使用层次结构,但您可以为不同的页面类型添加3个不同的项目转换。

答案 1 :(得分:2)

您可以像Brenden Kehren所提到的那样使用分层查看器通用查看器来实现您所描述的目标。

配置网络部件时,您必须选择层次结构中包含的所有网页类型,例如: CMS.MenuItem,CMS.Blog,CMS.BlogMonth,CMS。 BlogPost CMSBookingEvent

创建分层转换以与查看器一起使用,并为要显示的每个项目添加项目转换。还要确保正确配置每个转换的级别设置(-1将转换应用于所有级别)。

对于通用查看器,有必要在配置的扩展设置部分中检查属性加载分层数据

作为附加说明,您可以将路径属性保留为空,以防您查看当前页面的子文档。

作为参考,内容树路径中公司网站示例网站上还有一个示例示例> Web部件>列表和查看者>页面>分层查看器(或通用查看器)。

希望这有帮助!

答案 2 :(得分:-1)

其他方式是

  1. 通过转化中的检查对象fieldname评估右classname并指定适当的值。

  2. 通过检查对象类名

  3. 动态分配转换