воскресенье, 16 декабря 2012 г.

Изменение свойства "Hidden" у полей списка SharePoint 2010


При работе с семействами сайтов заметил такую особенность, если на сайте верхнего уровня создать тип контента и часть полей сделать скрытыми, то на текущем сайте все будет работать как надо, но вот подсайт уже с этим типом контента работает не корректно.
Проблемы:
скрытые поля скрыты не только в формах (просмотра, редактирования и создания), но и не доступны для рабочего процесса SPD и их нельзя отобразить в представлении.
В начале я решил изменить свойства с помощью SharePoint Manager 2010, но он выдал такую ошибку:


потом я решил изменить свойсво с помошью PowerShell

при выполнении команды $Field.Hidden = $false выдавало следующее сообщение:


Решение:

cls
if((Get-PSSnapin | Where {$_.Name -eq "Microsoft.SharePoint.PowerShell"}) -eq $null) {
Add-PSSnapin Microsoft.SharePoint.PowerShell;
}
$SPWeb = Get-SPWeb
http://server/site #Изменить адрес сайта#
$List = $SPWeb.Lists["Список"]  #Изменить на название списка#
$field = $List.Fields["
Поле"]  #Изменить на название поля# 
$type = $Field.GetType()
$mi = $type.GetMethod("SetFieldBoolValue", [reflection.bindingflags]"nonpublic, instance")
$parameters = "CanToggleHidden", $true
$mi.Invoke($Field, $parameters)
$Field.Hidden = $false
$Field.Update()
$SPWeb.Dispose()