2010-09-22 43 views
0

我有基於發佈文章頁面內容類型的自定義發佈頁面內容類型。在這個內容類型上,我有一個名爲「PageContentCategory」的自定義字段。在我的代碼來創建新的頁面,我嘗試這樣做:SharePoint - 以編程方式設置自定義發佈頁面佈局自定義字段

PublishingPage newPublishingPage = this.currentPublishingWeb.GetPublishingPages().Add(pageName, newPageSelectedLayout); 

if (pageContent.IsEmpty()) 
{ 
pageContent = Properties.Resources.EAWorldArticleHandler_CreateNewArticlePage_DefaultPageContent; 
} 

newPublishingPage.ListItem[new Guid("{93496B35-7EC3-4132-B0D0-3BDC5606F5EF}")] = pageContentCategory; 
newPublishingPage.ListItem[FieldId.PublishingPageContent] = pageContent; 
newPublishingPage.Title = pageTitle; 
newPublishingPage.Update(); 

我也試圖通過字段名稱進行設置:

PublishingPage newPublishingPage = this.currentPublishingWeb.GetPublishingPages().Add(pageName, newPageSelectedLayout); 

if (pageContent.IsEmpty()) 
{ 
pageContent = Properties.Resources.EAWorldArticleHandler_CreateNewArticlePage_DefaultPageContent; 
} 

newPublishingPage.ListItem["PageContentCategory"] = pageContentCategory; 
newPublishingPage.ListItem[FieldId.PublishingPageContent] = pageContent; 
newPublishingPage.Title = pageTitle; 
newPublishingPage.Update(); 

這些方法都拋出一個錯誤。有沒有什麼辦法讓我在自己的代碼中設置自定義字段的值?

回答

0

所以,解決我的問題是,我不得不編程將內容類型添加到頁面列表中,而不是在第一次添加具有該內容類型的頁面時自動添加內容類型。顯然,如果讓SharePoint自動將內容類型添加到頁面列表中,那麼它以某種方式無法正確綁定。因此,添加內容類型首先解決了我的問題。

0

嘗試撥打Update方法newPublishingPage.Listitem不在newPublishingPage本身。 像這樣:

newPublishingPage.ListItem["PageContentCategory"] = pageContentCategory; 
newPublishingPage.ListItem.Update(); 

,然後你也許還需要一些線條,這取決於在你的頁面庫的配置

newPublishingPage.Checkin(); 
newPublishingPage.Publish(); 
newPublishingPage.Approve(); 
+0

更新不是什麼引發錯誤。它試圖設置引起它的價值本身。我的代碼工作正常,如果我註釋掉這一行。 – TehOne 2010-09-22 23:19:32

相關問題