2012-04-17 108 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腳本,您將擁有所需的內容。更好的建議是將這些代碼放入事件接收器中,並將其放入列表更新的事件中。