此实例中的某个位置指的是列表中的文件夹(如果没有其他文件夹存在,则为根文件夹)。
要访问在特定文件夹中显示或隐藏哪些视图,请访问该文件夹的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()