2011-04-06 90 views
1

我一直在嘗試使用對象模型並抓取頁面並列出頁面上的所有Web部件。我一直在使用PowerShell,但我願意接受其他想法。Sharepoint 2010列出使用webpart的頁面

我遇到的問題是使用GetLimitedWebPartManager時,我在網頁上看到了很多webparts的列表。但如果我更改了Web部分的標題,我一直無法將其鏈接回原始Web部件。

例如,如果我在webpart Gallery中有一個帶有「my webpart」標題的webpart,並且我在頁面A上使用它。我在powershell列表中看到了webpart「my Webpart」。如果我在頁面或其他頁面上再次添加此Web部件並將標題更改爲「您的Web部件」,它會在新標題的列表中顯示,但我一直無法將這兩個Web部件鏈接在一起,顯示事實上該Web部件正在使用了2次。

我檢查了ID,Title,UniqueID,DisplayTitle並且看不到任何鏈接。

任何幫助將不勝感激。

+0

您可以顯示您正在使用的代碼來獲取網頁上的WebParts列表嗎? – 2011-04-06 21:13:20

回答

0

您應該能夠通過其類型設置爲鏈接的webpart:

$w = Get-SPWeb http://localhost 
$f = $w.GetFile("default.aspx") 
$m = $f.GetLimitedWebPartManager([System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared) 
$m.WebParts | % { $_.GetType().Name } 

這段代碼的頁面上的每個網頁組件的輸出類型,所以你能夠識別頁面上的一個web部件的多種用法(不管標題)。