Inherits Cloud

Loving Microsoft Cloud, specially Office 365

SPField visible pero no editable a los usuarios

Por si alguna vez necesitáis que en una lista o biblioteca de Sharepoint, algunos de los campos sean visibles para el usuario, pero no editables, os dejo este pequeño código.

La idea es lanzar esto desde una aplicación de consola, sobre una lista ya definida desde la interfaz web:

1: string siteUrl = «http://moss_server»;
2: //Guida de la lista a modificar
3: Guid listGuid = new Guid(«aaaaaaaa-aaaa-aaaa-aaaa-123412341234»);
4: 
5: using (SPSite site = new SPSite(siteUrl))
6: {
7: using (SPWeb web = site.OpenWeb())
8: {
9: SPList myList = web.Lists.GetList(listGuid, false);
10: 
11: SPField campo1 = myList.Fields[«internal_field_name»];
12: campo1.ShowInEditForm = false;
13: campo1.ShowInNewForm = false;
14: campo1.Update();
15: }
16: }

Como veis, el código es bastante sencillo. Basta con poner a false las propiedades que controlan si el campo debe mostrarse en el formulario de creación y edición.

Para sacar el Guid de la lista, podemos usar el Sharepoint Manager 2007 

image

O bien, podemos ver el Guid, desde la configuración de la lista, en la url (parámetro “List”). Si hacéis esto, tened en cuenta que:

%7B = {
%7D = }
%2D = –

Pero, ¿¿qué sentido tiene crear una lista con campos, que luego no podemos editar?? bueno, tiene sentido, si algunos de esos campos son insertados desde código, manejando el evento de inserción.

Otra propiedad interesante que consigue un efecto parecido es:

1: campo1.ReadOnlyField = true;

De este modo también conseguimos que el campo no lo pueda editar el usuario, sin embargo, el campo sólo será visible desde la lista de items:

image

pero no aparecerá en el DisplayForm del Item:

image

Nada más, espero que le sirva a alguien.

Saludos!!

2 Comentarios

  1. A mi me sirve Luis 🙂
    Gracias por el dato, voy a comentarlo en Surpoint.
    Saludos!

  2. lmanez

    16 abril, 2010 at 7:55 pm

    Genial Juan Pablo!! 🙂

    A ver si saco un rato y escribo sobre «Custom field types»

    Saludos!!

Responder a lmanez Cancelar respuesta

Tu dirección de correo electrónico no será publicada.

*

© 2024 Inherits Cloud

Tema por Anders NorenArriba ↑