【发布时间】:2017-02-21 21:03:10
【问题描述】:
我遇到了一种情况,我需要检索页面类型列的富文本内容,并返回该数据/HTML,因为它会出现在呈现的页面上。然后,自定义 Web 部件将聚合数据作为 XML 或 JSON 节点提供。
在大多数情况下,这在使用 DocumentQuery 的代码中很容易,但问题在于已插入内容的小部件。
我的问题是:我如何纯粹在代码中“渲染”一个小部件?甚至,Kentico 正在执行什么过程来渲染一个我可能能够复制的小部件?
我对小部件/Web 部件/用户控件关系有些熟悉,因此我认为需要使用小部件上的属性(在某处,以某种方式)实例化 Web 部件,然后访问 RenderedHTML 属性Web 部件。
由于小部件存储在数据中的格式,我希望它们可以通过 MacroResolver 进行解析,但似乎并非如此。
作为参考,以下是开箱即用的 DateTime 小部件如何显示的示例: {^widget|(jsuseservertime)False|(name)DateTime|(widget_displayname)Date+%26+time|(width)|(height)^}
非常感谢任何输入!
【问题讨论】:
-
为什么你需要通过一个小部件来做到这一点?如果它是某个页面类型字段(甚至是富文本)的内容,您可以简单地在代码中获取树节点并获取此类字段的值。
-
我相信他说的是 CMS_Document 数据库中 DocumentContent 列的一部分,即“可编辑文本”webpart 中使用的文本。
-
澄清:我们正在使用自定义页面类型字段,数据类型为长文本/富文本,允许某人通过表单视图输入丰富的内容和自定义小部件。所以举个简单的例子,如果富文本字段的内容是:“你好,欢迎来到网站。当前时间是
” 检索相应的数据库列时的输出将是:“你好,欢迎来到站点。当前时间是 12:00" 使用的小部件显然更复杂,由于“容器”类型的页面,页面不一定有模板。 -
我的意思是“仅内容”页面类型标志,而不是容器标志 :) 内容编辑器可能只看到“内容”选项卡,而不是通常的“页面”、“设计”和“表单” " 选项卡。
标签: kentico