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.
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:
Hola, quiero ocultar un campo en una lista del tipo blog.
Donde tendría que poner este código?
Muchas gracias!
Publicar un comentario