WebPart 干净地呈现 n 个项目的列表

WebPart cleanly render a list of n items

我正在尝试在 Kentico 11 中创建一个支持处理 n 长度项目列表的 WebPart。我发现在 Kentico 中创建具有 属性 字段的 WebPart 非常简单,但我无法找到有关如何最好地设置可以查找和输出 multiple 的 WebPart 的文档模型对象。

我尝试过以下方法,但它有一些我不太满意的缺点:

  1. 设置容器页面类型以在其中放置数据对象的实例。我限制它以确保只有我的自定义页面类型数据对象可用作它的子对象。
  2. 在模板区域中放置一个页面数据源并将其定向到容器页面。
  3. 将 Repeater 元素连接到它,并将转换和内容应用到 Repeater 之前+之后。

虽然这可行,但感觉有点笨拙。内容编辑必须足够聪明,知道如何设置 DataSources 和 Repeater,以及如何将它们绑定在一起并应用转换,另外记得用适当的包装填充 content beforecontent after 字段HTML 标记。

这不是我希望内容编辑器需要记住的内容。

有没有一种更简洁的方法可以将项目列表放入模板区域,而无需拖动和配置数据源和容器页面?

我没有看到任何方式来设置页面类型字段,使其本质上模拟与另一种页面类型的一对多关系。我错过了什么吗?如果我能做到这一点,那么我就可以编写一个转换来处理包装 HTML 标记和子项的循环。不过还没有找到一种方法来完成这项工作。

完成您所要求的最好方法是使用自定义表单控件。在您的情况下,表单控件应该能够让用户 select 多个项目。

您实际上可以为此目的使用“Sortable multiple object selector”市场项目。此表单控件将使您能够 select 基于特定类型(您需要在代码中配置)的多个项目,编辑器只需使用 select 对话框来选择项目。