我一直在尝试使用对象模型并抓取页面并列出页面上的所有webpart。我一直在使用powershell,但我对其他想法持开放态度。
我遇到的问题是在使用GetLimitedWebPartManager
时,我得到了一个页面上的webpart列表,到目前为止很棒。但如果我更改了网站部分的标题,我就无法将其链接回原始网站部分。
例如,如果我在webpart Gallery中有一个标题为“my webpart”的webpart,我在第A页上使用它。我在powershell列表中看到了webpart“my Webpart”。如果我在页面或其他页面上再次添加此webpart并将标题更改为“您的Webpart”,它将显示在带有新标题的列表中,我无法将2个webpart链接在一起,显示此webpart正在使用了2次。
我检查了ID
,Title
,UniqueID
,DisplayTitle
,但看不到任何链接。
非常感谢任何帮助。
答案 0 :(得分: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 }
此代码将输出页面上每个webpart的类型,因此您可以识别页面上一个webpart的多次使用(无论标题如何)。