Sharepoint 2010 发布网络控件:RichHtmlField渲染不工作
我使用站点内容类型richtmlfield作为值为hello的完整HTML类型 PublishingWebControl:layoutpage中的RichHtmlField标记不呈现它 而不是显示hello。它正在显示html标记 任何帮助都将不胜感激Sharepoint 2010 发布网络控件:RichHtmlField渲染不工作,sharepoint-2010,Sharepoint 2010,我使用站点内容类型richtmlfield作为值为hello的完整HTML类型 PublishingWebControl:layoutpage中的RichHtmlField标记不呈现它 而不是显示hello。它正在显示html标记 任何帮助都将不胜感激 谢谢这是因为放在RichHtmlField中的字段是文本类型,而不是HTML 如果您具有正确的内容类型,则需要执行以下操作,以便从schema.xml更新列表实例 首先删除该内容类型的任何页面,转到页面列表并删除该内容类型的每一列,然后删除该内容
谢谢这是因为放在RichHtmlField中的字段是文本类型,而不是HTML 如果您具有正确的内容类型,则需要执行以下操作,以便从schema.xml更新列表实例 首先删除该内容类型的任何页面,转到页面列表并删除该内容类型的每一列,然后删除该内容类型。进入“网站设置”,然后选择“网站内容类型”并将其删除。对列执行相同的操作。转到“网站设置”,然后删除内容类型中的每一列(尽管它们应该已经丢失)
这是因为当您从内容类型创建网站时,它会采用Schema.xml来描述内容类型的格式,然后对其进行实例化并将其提供给页面,因此,如果更新了Schema,该页面尚未启动。我在寻找完全相同问题的解决方案时发现了这篇文章,我想我找到了答案 在我的场景中,我的页面上有多个RichHtmlFields,其中一个显示正确,而另一个显示不正确。当我通过powershell查看字段时,我注意到SchemaXML中的一个差异,工作字段具有以下附加属性:
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()
RichHtmlField属于HTML类型。它不是文本