5

我遇到這樣的情況:我有一個類傳遞了一個PublishingPage實例,並且想枚舉在此頁面的佈局頁面中使用的任何和所有Web部件區域。以編程方式枚舉發布頁面佈局的Web部件區域

這證明很難。

PublishingPage具有名爲Layout的屬性,該屬性的類型爲PageLayout。這與PublishingLayoutPage不同,後者繼承(最終)爲具有Zones屬性的Page。此PageLayout類型沒有任何引用具有我需要的Zones屬性的常規ASP.NET頁面類型。

我可以從PublishingPage.Layout屬性中獲取SPListItem和SPFile,並以原始文本形式獲取頁面佈局的內容,但無法使用XmlReader進行分析,因爲它不是有效的XML(具有<%標籤無效)。

我可以從PublishingPage.ListItem.Web中獲得一個SPWeb,並且這可以讓我獲得一個SPLimitedWebPartManager,我可以在其中獲得一個LimitedWebParts集合(它具有區域信息) - 但這不會有幫助,因爲在這個階段我的代碼我沒有Web部件。

我很堅持,它看起來像發佈基礎結構是從ASP.NET和SharePoint分離。

UPDATE:

我可以使用SPLimitedWebPartManager添加一個虛擬的網絡部分(如新ContentEditorWebPart)到Web部件區域(我所使用的區域的名稱),但是當我保存並檢查返回的頁面(並獲得一個新的SPLWPM),我可以返回WebParts,但Zone屬性爲空(ZoneID屬性填充並正確)。

+1

沒有OOB解決方案... http://stackoverflow.com/questions/3821067/in-sharepoint-how-to-list-all-webpartzones-of-a-specific-page-from-object-model – 2011-02-15 19:28:09

回答

0

韋恩範的帖子this thread似乎涵蓋了你想要做的事情。希望這可以幫助。

相關問題