【问题标题】:Render Widget as HTML in Code Behind在后面的代码中将小部件呈现为 HTML
【发布时间】: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


【解决方案1】:

你看过这篇文章http://devnet.kentico.com/articles/how-to-resolving-the-inline-controls吗?它很老了。但是CMS.ExtendedControls.ControlsHelper.ResolveDynamicControls 在较新的 Kentico 版本中可用。我认为它可能会解决您的问题。

【讨论】:

    猜你喜欢
    • 2016-07-20
    • 2014-01-27
    • 1970-01-01
    • 2022-12-28
    • 1970-01-01
    • 2011-09-09
    • 2016-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多