1

基本的なチーム サイト テンプレートのメイン ページには、予定表 Web パーツがあり、既定では、そのビューは予定表リストの予定表ビューに基づいています。私の問題は、カレンダー リストに新しいカレンダー オーバーレイを適用した後、メイン ページ ビューが自動的に更新されず、この変更が反映されないことです。代わりに、Web パーツを編集し、カレンダー ビュー (現在既定で使用されているもの) を選択して、その変更を適用する必要があります。私はこのタスクをpowershellでうまくやろうとしています。

私が使用しようとしていたコードは次のとおりです。

$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 コードはありますか?

4

1 に答える 1

0

考え方は正しいのですが、細部に誤りがあります。ViewGuid に依存しないでください。この記事をご覧ください。役に立つかもしれません。次に、.NET コードを PowerShell スクリプトに変換すると、必要なものが得られます。リストの更新時に発生するイベントに、このコードとイベント レシーバーを配置することをお勧めします。

于 2012-09-06T15:22:43.693 に答える