【发布时间】:2015-01-28 15:15:08
【问题描述】:
我正在使用 Sitecore 7.5 和 Glass Mapper 3.2.3 构建一个站点。当我将子布局添加到页面的演示详细信息时,Glass Mapper 将假定子布局的数据源应该是当前页面。我还可以通过在演示详细信息对话框中选择站点上的不同页面来显式设置渲染的数据源。
Glass Mapper 仍然可以正常工作,并使用另一个选定的页面作为渲染的数据源。但是,如果我尝试使用“构建查询”对话框并为我的数据源构建查询,Glass Mapper 似乎会忽略这一点,而只是将当前页面用作数据源。有什么方法可以使用我使用“构建查询”对话框构建的查询吗?
编辑:这是有关我的设置的更多信息。我在 Sitecore 中有一个名为 ContentPage 的数据模板。它有一个字段:内容。我在站点中有多个使用此数据模板的页面。我有一个名为 sublayoutPageContent 的子布局。它继承自 GlassUserControl。它所做的只是显示内容字段。如果我将此子布局添加到页面 A 的演示详细信息中并且不指定数据源,则它可以正常工作。当我打开页面 A 时,它会完美地显示页面 A 的内容字段。我还可以进入子布局的演示详细信息并告诉它使用不同的页面作为数据源 - 比如说页面 B。如果我这样做然后我去查看页面 A,我将看到页面 B 中的内容字段. 太棒了——按预期工作。现在,我没有为数据源选择一个页面,而是使用了一个查询,并在该查询中选择了页面 B。现在,当我查看页面 A 时,我看到页面 A 的内容字段 - 而不是页面 B。希望能更好地解释它。
【问题讨论】:
-
你能把部分代码也发一下吗?
-
无需发布太多代码,Glass 为您处理了很多。但我想我可以添加一些基本代码。
-
尝试使用 IEnumerable 作为玻璃模型
-
我不确定我理解你的意思。我的数据模板的模型是由 TDS 使用 Glass 的代码生成模板自动生成的。子布局是显示单个文本字段的简单子布局。
标签: sitecore sitecore7 glass-mapper sitecore7.5