2012-03-06 65 views

回答

2

我遇到這篇文章,同時尋找解決方案完全相同的問題,我想我找到了答案。

在我的方案中,我的頁面上有多個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() 
0

它,因爲你的領域是你的RichHtmlField裏面放的輸入文字,並且不是HTML的。

如果您具有正確的內容類型,那麼您需要執行以更新schema.xml中的列表實例。

首先刪除任何內容類型的頁面,轉到頁面列表並刪除內容類型的每一列,然後刪除內容類型。進入網站設置,然後選擇網站內容類型並將其刪除。對列進行同樣的操作。轉到網站設置,然後列將刪除內容類型的每一列(儘管它們應該已經丟失)。

發生這種情況的原因是,當您從Content類型創建網站時,它需要Schema.xml來描述內容類型是如何格式化的,然後將其實例化並將其提供給頁面,以便在更新模式後,頁面不是從它已經啓動。