4

我有一个“产品页面”,产品页面映射到“产品页面”Sitecore 项目。网站/页面/产品页面。

我在该页面中有一个带有页面编辑器的文本区域,它从 Web 数据库中的“产品示例文本”Sitecore 项目的“描述”文本加载文本。(Sitecore.../CommonText/产品示例文本)

在我的 ascx 文件中,标记非常直接,

<sc:FieldRenderer ID="FieldRenderer1" runat="server" />

代码隐藏,

FieldRenderer1.Item = //"Product Example Text" Sitecore item
FieldRenderer1.FieldName = "Description";

当我在页面编辑器中打开页面时(作为系统管理员),它允许我更改“产品示例文本”,当我使用页面编辑器上的“保存”按钮保存时,它会保存到主数据库中。“产品示例文本”项目被保存。现在,当我尝试使用页面编辑器功能区中的“发布”项目发布项目时,这些更改没有得到反映,原因是“产品示例文本”项目没有发布。

当我保存页面时,Sitecore 以某种方式理解必须保存“产品示例文本”项目。但是为什么不发布呢?我做错了什么......我该如何解决这个问题?

4

2 回答 2

4

Page Editor中保存项目时,Sitecore 会保存页面上显示的所有字段渲染器,因此如果您将 a 的Item属性设置FieldRenderer1"Product Example Test" Sitecore Item,则Page Editor知道应该保存哪个项目。

发布的问题是您将当前项目排入发布队列中,但该项目"Product Example Test" Sitecore Item在其任何属性中都没有链接,因为您Item在代码中动态设置字段渲染器的属性。

选项是在按钮Page Editor旁边添加另一个按钮Edit Related Item并创建一个命令Publish Related Item。如何添加这样一个命令的完整描述可以在答案中找到Sitecore 页面编辑器 - 如何扩展页面编辑器项目编辑面板

于 2013-08-21T08:15:30.043 回答
1

另一种方法是在“ProductPage”下创建“Product Example Test”内容项作为子项。在发布选项中,您可以使用发布子项目,这将发布您想要的所有内容。但问题是,如果您希望在多个地方共享特定内容,这是行不通的。马拉斯的答案是一个更好的解决方案。

于 2013-08-21T09:47:17.993 回答