2011-04-06 101 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部件的多种用法(不管标题)。