SharePoint 2010: Ocultar / des-ocultar campos de formulario de lista (II)!

Hace un tiempo os comentaba varias alternativas que tenemos disponibles a la hora de ocultar/des-ocultar  campos de un formulario de lista de SharePoint. Una de las posibilidades que tenemos es mediante el uso de PowerShell utilizando un script similar al siguiente:

   1:  $site = new-object Microsoft.SharePoint.SPSite($siteurl)
   2:  $web = $site.OpenWeb()
   3:  $list = $web.Lists["MiLista"]
   4:  $field = $list.Fields["MiCampo"]
   5:  $field.ShowInNewForm = 0
   6:  $field.ShowInEditForm = 0
   7:  $field.ShowInDisplayForm = 0
   8:  $field.Update()
   9:  $list.Update()
  10:  $web.Dispose()

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

Cómo veis, la aproximación es similar a lo que podemos hacer con el modelo de objetos en cliente:

  • Creamos una instancia de SPSite para a continuación acceder al sitio raíz mediante el correspondiente objeto SPWeb.
  • A continuación, de la colección de listas del sitio accedemos a la lista en particular (SPList).
  • Para esa lista y su colección de columnas, localizamos la columna que queremos quitar/añadir de los formularios (SPField).
  • Configuramos el comportamiento del campo en el formulario (su visibilidad) mediante las propiedades ShowInNewForm, ShowInEditForm y ShowInDisplayForm.
  • Actualizamos la configuración del campo mediante el método Update().
  • Actualizamos la lista mediante el método Update().
  • Finalmente, liberamos el objeto SPWeb mediante el correspondiente disposado.