sitecore - 是否可以将查询用作使用 Glass Mapper 进行 Sitecore 渲染的数据源?

标签 sitecore sitecore7 glass-mapper sitecore7.5

我正在使用 Sitecore 7.5 和 Glass Mapper 3.2.3 构建一个站点。当我将子布局添加到页面的呈现细节时,Glass Mapper 将假定子布局的数据源应该是当前页面。我还可以通过在演示详细信息对话框中选择站点上的不同页面来显式设置渲染的数据源。

enter image description here

Glass Mapper 仍然可以正常工作,并使用其他选定页面作为渲染的数据源。但是,如果我尝试使用“构建查询”对话框并为我的数据源构建查询,Glass Mapper 似乎会忽略这一点,而仅使用当前页面作为数据源。有什么方法可以使用我使用“构建查询”对话框构建的查询?

enter image description here

编辑:这是有关我的设置的更多信息。我在 Sitecore 中有一个名为 ContentPage 的数据模板。它只有一个领域:内容。我在站点中有多个使用此数据模板的页面。我有一个名为 sublayoutPageContent 的子布局。它继承自 GlassUserControl。它所做的只是显示内容字段。如果我将此子布局添加到页面 A 的演示文稿详细信息中并且不指定数据源,则它可以正常工作。当我打开页面 A 时,它完美地显示了页面 A 的内容字段。我还可以进入子布局的演示详细信息并告诉它使用不同的页面作为数据源 - 比如说页面 B。如果我这样做然后我去查看页面 A,我会看到页面 B 的内容字段. 太好了 - 这按预期工作。现在,我不再为数据源选择页面,而是使用查询,并在该查询中选择页面 B。现在,当我查看页面 A 时,我看到页面 A 的内容字段 - 而不是页面 B。希望能更好地解释它。

最佳答案

如果您支持页面编辑器并且这些源将定期变化,您可能需要使用数据源模板和数据源位置而不是使用数据源。然后,当您通过页面编辑器添加项目时,系统会提示您创建或选择数据源项目。这使它变得非常容易,尤其是在您描述的场景中。您可以对数据源位置使用静态或相对路径。我经常使用类似的构造,尽管有 1 个以上的字段,但效果很好。即使您不使用页面编辑器,您也可以使用它,但最佳实践是支持页面编辑器和 DMS,这样您就可以灵活地使用两者。

如果您需要多个项目,这将不起作用,但根据您的描述,您似乎只需要能够在它们之间进行选择。此外,在这种情况下,您可以将多个项目分组到一个文件夹或其他项目下,并使用 [SitecoreChildren] 属性并以这种方式获取项目。这实际上完全取决于您需要多灵活以及您的要求是什么。

关于sitecore - 是否可以将查询用作使用 Glass Mapper 进行 Sitecore 渲染的数据源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28195748/

相关文章:

javascript - Sitecore 富文本编辑器 - 添加按钮

sitecore - 将配置文件属性映射到选项集或选项列表属性

Sitecore 7 - 具有搜索相对路径的多列表

sitecore - Glass Mapper RenderLink 双引号

c# - "You cannot save a class that does not contain a property that represents the item ID"当 GlassCast(ing) 分支模板项时,为什么?

sitecore - 使用 Glass.Mapper 将 Droplist 项映射到复杂类型

asp.net-mvc - Sitecore 6.6 中的静态 View 渲染

.net - Sitecore Analytics 机器人 SessionTimeout 导致 session 过早超时

c# - Sitecore item.IsClone 与 item.IsItemClone

sitecore - 如何从 Sitecore 地理位置信息中获取用户所在的国家/地区?