假设我的网站有很多页面,而且大多数网页都有一个或多个简单视觉元素的实例,这些元素具有标题,描述和缩略图。页面上这些元素的数量是可变的。我应该如何构建我的数据模板?
理想情况下,我想为此元素创建一个单独的数据模板,因为它的数据字段可能会在不久的将来发生变化。我想将此模板用作我的页面的基本模板,但这只能为我提供一个数据部分实例。
另一个要求是这些元素不以逻辑方式组合在页面上;它们可以出现在页面的任何位置,并且页面编辑者应该能够自由地插入和删除它们。
我迄今为止使用SiteCore的经验是,网页基于严格的数据模板,因此构建流畅的页面并不容易处理。可能是我错过了一些东西,因为我对这个产品很陌生。
答案 0 :(得分:4)
这可以通过创建一个只是常规.NET UserControl的子布局来创建一个独特的“数据源”模板来填充控件的数据。例如,您可以创建一个简单的Callout子布局,该子布局需要一个Callout DataSource项,该项具有必要的渲染字段。
我写了一篇关于此事的博文:Using the DataSource Field with Sitecore Sublayouts
答案 1 :(得分:0)
如果我们使用汽车模板的类比:
作为数据,您可以在sitecore树中有一个名为“car list”的根项。之后,您可以制作尽可能多的汽车。 如果您想将某些汽车添加到某个页面,那么在您创建该页面的模板上,您可以向模板添加sitecore treelist并将该点的来源设为您的汽车列表。现在您可以在特定页面上引用选择的汽车。然后,您可以创建一个模块,可以提取树状列表项并在页面上显示它们。这很容易,因为treelist项目就像任何其他项目一样。 关于这一点的好处是你可以在汽车上放置标准值,当它们发生变化时,所有页面上的所有汽车的值都会发生变化。
答案 2 :(得分:0)
您可以为内容块元素创建单独的数据模板(标题+描述+可视化)。
然后在页面项目下方,创建一个包含内容元素的文件夹(例如内容块)。
在渲染页面时,您只需从内容块文件夹中加载项目并在页面上呈现它们(例如,使用转发器)。
通过这种方式,您可以通过在文件夹中添加/删除它们来控制显示哪些内容块,您可以对它们进行排序,您可以随时向它们添加新字段。
如果它们没有逻辑地放在一个组中,您可以在内容块中添加一个字段,指定它应该在页面上显示的位置。