2012-04-17 110 views
1

在基本团队网站模板的主页上,我有一个日历Web部件,其默认视图基于日历列表日历视图。我的问题是,在日历列表上应用新的日历叠加后,主页面视图不会自动更新以反映此更改。我不得不编辑webpart,选择日历视图(默认情况下当前正在使用的视图)并应用该更改。我试图在没有运气的PowerShell中完成这个任务。Sharepoint 2010日历Webpart视图Powershell

我attemping使用的代码是:

$web = get-spweb "http://portal/site/testsite1" 
$file = $web.getfile("default.aspx") 
$manager = $file.getlimitedwebpartmanager([System.web.ui.webcontrols.webparts.personalizationscope]::shared) 
$manager.webparts | format-list title, ID 

$wp = $manager.webparts["GUID_HERE"] 
$doclib = $web.lists["Calendar"] 
$view = $doclib.Views["Calendar"] 

$wp.ViewGuid = $view.ID.ToString("B").ToUpper() 
$manager.SaveChanges($wp) 

不幸的是这并没有得到有效更新视图,以反映在日历视图当前应用的覆盖,因此只有手动干预一直在努力。是否有一些我可以用来完成这项任务的PowerShell代码?

回答

0

这个想法是正确的,但在细节上有一个错误。你不应该依赖ViewGuid。看看this article。您可能会发现它很有帮助。然后将.NET代码转换为PowerShell脚本,您将拥有所需的内容。更好的建议是将这些代码放入事件接收器中,并将其放入列表更新的事件中。