我有一个“产品页面”,产品页面映射到“ProductPage”Sitecore项目。网站/网页/ ProductPage。
我在该页面中有一个带有页面编辑器的文本区域,该页面编辑器从Web数据库中的“产品示例文本”Sitecore项目的“描述”文本中加载文本。 (Sitecore ... / CommonText / Product Example Text)
在我的ascx文件中,标记为漂亮的straigh forwad,
<sc:FieldRenderer ID="FieldRenderer1" runat="server" />
代码隐藏,
FieldRenderer1.Item = //"Product Example Text" Sitecore item
FieldRenderer1.FieldName = "Description";
当我在页面编辑器中打开页面时(作为系统管理员),它允许我更改“产品示例文本”,当我使用页面编辑器上的“保存”按钮保存时,它将保存到主页数据库。 “产品示例文本”项目已保存。 现在,当我尝试使用页面编辑器功能区中的“发布”项目发布项目时,这些更改不会反映出来,原因是“产品示例文本”项目未发布。
当我保存页面时,Sitecore会以某种方式理解“产品示例文本”项目必须保存。但为什么不发表呢? 我做错了什么......我怎样才能解决这个问题?
答案 0 :(得分:4)
在页面编辑器中保存项目时,Sitecore会保存页面上显示的所有字段呈现器,因此如果将Item
的{{1}}属性设置为FieldRenderer1
,"Product Example Test" Sitecore Item
知道应保存哪个项目。
发布的问题在于您将当前项排入发布队列,但此项在其任何属性中都没有指向Page Editor
的链接,因为您正在设置"Product Example Test" Sitecore Item
属性字段渲染器在代码中动态显示。
该选项是在Item
按钮旁边的Page Editor
添加另一个按钮,并创建一个Edit Related Item
的命令。可以在答案Sitecore page editor - how to extend page editor item editing panel
答案 1 :(得分:1)
另一种方法是在“ProductPage”下创建“Product Example Test”内容项作为子项。在发布选项中,您可以使用发布子项,这将发布您想要的所有内容。 但问题是,如果您希望在多个地方共享特定内容,这将无效。 Maras的答案是一个更好的解决方案。