Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kentico Web部件干净地呈现n个项目的列表_Kentico - Fatal编程技术网

Kentico Web部件干净地呈现n个项目的列表

Kentico Web部件干净地呈现n个项目的列表,kentico,Kentico,我正在尝试在Kentico 11中创建一个支持处理n长度项目列表的Web部件。我发现在Kentico中创建一个带有属性字段的Web部件非常简单,但是我很难找到关于如何最好地设置一个可以查找和输出多个模型对象的Web部件的文档 我尝试过以下方法,但它有一些缺点,我并不完全适应: 设置容器页面类型以在其中放置数据对象的实例。我对它进行了限制,以确保只有我的自定义页面类型数据对象作为它的子对象可用。 将Pages数据源放置在模板区域中,并将其定向到容器页面。 将Repeater元素连接到它,并将转换&

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

我尝试过以下方法,但它有一些缺点,我并不完全适应:

设置容器页面类型以在其中放置数据对象的实例。我对它进行了限制,以确保只有我的自定义页面类型数据对象作为它的子对象可用。 将Pages数据源放置在模板区域中,并将其定向到容器页面。 将Repeater元素连接到它,并将转换&内容before+after应用到Repeater。 虽然这样做有效,但感觉有点笨拙。内容编辑器必须足够聪明,知道如何设置数据源和转发器,以及如何将它们绑定在一起并应用转换,此外还记得使用适当的包装HTML标记填充“内容前”和“内容后”字段

我希望内容编辑器不需要记住这一点

是否有一种更干净的方法可以将项目列表放置在模板区域内,而无需拖动和配置数据源和容器页面


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

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


实际上,您可以为此目的使用marketplace项。此表单控件将允许您根据需要在代码中配置的特定类型选择多个项目,编辑器只需使用“选择”对话框来选择项目。

您能将多对象选择器指向任意页面类型吗?看起来它只能通过内置系统对象类型cms.document、cms.user等进行查找。我需要能够仅向用户显示我的自定义模型类型。也就是说,我确实看到了如何构建一个自定义表单控件来构建我试图实现的目标。我真的希望这是Kentico提供的开箱即用的东西,因为它似乎可以使开发和内容输入变得更加容易。我相信你可以,因为代码似乎要求一个“数据集”,不应该关心里面有什么数据。在代码中,您还可以配置向编辑器显示的“字段”,这样您就不必担心它了。如果由于某种原因,这不能完全按照您的需要工作,您可以自由地调整代码,因为您认为合适-没有限制,您可以看到完整的源代码。