此實例中的某個位置指的是列表中的文件夾(如果沒有其他文件夾存在,則爲根文件夾)。
要訪問在特定文件夾中顯示或隱藏哪些視圖,請訪問該文件夾的client_MOSS_MetadataNavigationSettings
屬性。
該屬性將是一個XML字符串,其中包含<ViewSettings>
元素,其中您將看到<View>
元素的所有視圖都已配置了特殊的按位置設置。如果視圖設置爲從該位置隱藏,<View>
節點的Index
屬性將爲負數的字符串表示形式。
默認情況下,全新視圖將顯示在所有文件夾中,但在<ViewSettings>
集合中不會顯示條目;如果你想隱藏它,你需要創建一個新的XML元素並將其插入到屬性中。
下面是在從根文件夾隱藏的視圖的Powershell的一個例子:
$viewName = "Secret View"
$web = get-spweb http://example-site
$list = $web.Lists["Example List"]
$viewToHide = $list.Views | where-object { $_.Title -like $viewName }
$folder = $list.RootFolder
$settings = [xml]$folder.GetProperty("client_MOSS_MetadataNavigationSettings")
$view = $settings.MetadataNavigationSettings.ViewSettings.View | where-object { $_.ViewId -like $viewToHide.Id }
if($view -ne $null){
$view.Index = "-1"
}else{
$view = $settings.CreateElement("View")
$settings.MetadataNavigationSettings.ViewSettings.AppendChild($view)
$view.setAttribute("ViewId",$viewToHide.Id)
$view.setAttribute("CachedName",$viewToHide.Title)
$view.setAttribute("Index","-1")
$view.setAttribute("CachedUrl",$viewToHide.Url)
}
$folder.SetProperty("client_MOSS_MetadataNavigationSettings",$settings.OuterXml)
$folder.Update()