PublishingWebControls:RichHtmlField渲染不起作用

时间:2012-03-06 21:44:36

标签: sharepoint-2010

我使用网站内容类型RichHtmlField作为完整HTML类型,其值为 hello PublishingWebControls:layoutpage中的RichHtmlField标记不会呈现它。

而不是显示 hello 。它显示的是html标签。

任何帮助都值得赞赏。

由于

2 个答案:

答案 0 :(得分:2)

我在寻找解决方案的同时遇到了这个问题,我觉得我找到了答案。

在我的场景中,我的页面上有多个RichHtmlFields,一个正确显示,而另一个则没有。当我通过powershell查看字段时,我发现SchemaXML有所不同,WORKING字段具有以下附加属性:

 RichText="True"
 RichTextMode="FullHtml"

我写了一个快速的PowerShell脚本来更新问题字段,问题就消失了(看下面的脚本)。必须在列表级别进行更改才能对现有页面/列表产生影响,但我相信在根网站(或正确的子网站)上对列进行修改也会起作用。

 $web = $site.OpenWeb($site.RootWeb.ID)
 $list = $web.Lists["Pages"]
 [Microsoft.SharePoint.Publishing.Fields.HtmlField]$field =   [Microsoft.SharePoint.Publishing.Fields.HtmlField]$list.Fields.GetFieldByInternalName("Abst     ract")
 $field.RichText = $true
 $field.RichTextMode = [Microsoft.SharePoint.SPRichTextMode]::FullHtml
 $field.Update()
 $list.Update()

答案 1 :(得分:0)

这是因为放在RichHtmlField中的字段是Text而不是HTML。

如果您有正确的内容类型,则需要执行以下操作才能从schema.xml更新列表实例。

首先删除任何内容类型的页面,转到“页面”列表并删除内容类型的每一列,然后删除内容类型。进入站点设置然后站点内容类型并删除它。为列做同样的事情。转到网站设置,然后列将删除内容类型中的每一列(尽管它们应该已经丢失)。

这是因为当您从Content类型创建网站时,它会使用Schema.xml来描述内容类型的格式,然后将其实例化并将其提供给页面,以便在更新架构之后,页面自从它已经启动以来就没有了。