domingo, 27 de abril de 2008

Ocultar campos en SharePoint 2007

Una de las cosas que se echa de menos en MOSS 2007 es la no existencia de seguridad a nivel de campo (Field) pero, al menos, existe la posibilidad de decidir si un campo se muestra o no en los formularios de las listas.

Para ello disponemos de una serie de atributos que definen si un campo debe ser visible en los formularios de New, Edit, Display y en el historial de versiones, aunque no son modificables a través de SharePoint directamente, sino que deberemos recurrir a la API.

Supongamos que queremos ocultar el campo "nombreCampo" de la lista "nombreLista" a los usuarios lectores pero que siendo posible editar su contenido, el código sería como sigue:

//Creamos el site

SPsite site = new SPSite("http://miservidor");


//Abrimos el objeto web

SPWeb web = site.OpenWeb();

//Cogemos la lista en la que queramos ocultar los campos
SPList list = web.Lists["nombreLista"];

//Cogemos el campo de la lista a ocultar
SPField field = list.Fields["nombreCampo"];

//Seteamos las propiedades del campo
field.ShowInDisplayForm = false; //El campo no se mostrará en el formulario de display de los ítems
field.ShowInEditForm = true; //El campo se mostrará en el formulario de edición de ítems
field.ShowInNewForm = true; //El campo se mostrará en el formulario de nuevos ítems
field.ShowInVersionHistory = false; //El campo no se mostrará en el historial de versiones
field.ShowInListSettings = true; //El campo se mostrará en la configuración de la lista

//Actualizamos el campo
field.Update();


Una forma sencilla de decidir en qué formularios son visibles determinados campos, eso sí, no hay que olvidar hacerlo para todas las listas en las que el campo esté presente.

1 comentario:

Elena A. dijo...

Hola, quiero ocultar un campo en una lista del tipo blog.

Donde tendría que poner este código?

Muchas gracias!