Cómo definir un campo de solo lectura en la página de edición de una lista de SharePoint
Esto es algo que esperaba lograr hacer a través de las opciones de configuración de SharePoint, pero que por el momento requiere de unos cuantos pasos más y la ayuda de SharePoint Designer. El requerimiento que tenía mi cliente en este caso era pues que deseaban que en una determinada lista de SharePoint los usuarios no pudieran editar uno de sus campos luego de que la lista ya estaba creada.
Para demostrar cómo se puede lograr esto he creado dos listas personalizadas. La primera se llamada Frecuencias y la muestro en la siguiente figura:
Y la segunda se llama Evaluaciones, la cual pues tiene un campo de tipo búsqueda (lookup) que recibe datos de la lista Frecuencias:
Lo que deseamos hacer aquí es evitar que el usuario pueda cambiar la frecuencia de alguno de los elementos desde la página de edición de los elementos de la lista:
Para esto debemos convertir el DropDownList de la Frecuencia en un texto de solo lectura.
Entonces, para convertir un campo editable de la lista en un campo de solo lectura:
1. Abre SharePoint Designer.
2. Abre tu sitio web y, en el panel izquierdo, ubícate en la lista a la que le harás la modificación. En este caso, la lista Evaluaciones.
3. Saca una copia de EditForm.aspx con un simple copy-paste de la misma sobre la lista de Evaluaciones y dale un nombre apropiado a la nueva forma (EditFormPersonalizada.aspx en el ejemplo).
4. Dale doble click a tu nueva forma para que se abra en el diseñador de la parte central.
5. En la parte inferior, selecciona la vista Code para ver el HTML de la página. Allí selecciona el elemento WebPartPages:ListFormWebPart y todo su contenido y elimínalo.
6. Cámbiate a la vista Split para ver el código y el diseño de la página en pantalla dividida. Ubícate en la zona del código en la que eliminaste el código y seleciona Insert --> SharePoint Controls --> Custom List Form... desde el menú.
7. En el cuadro de diálogo List or Document Library Form elige la lista a editar (Evaluaciones), selecciona Elemento en Content type to use for form, elige Edit Item Form en Type of form to create y dale click a OK. Te aparecerá el HTML de la lista en la pantalla de código y su representación visual en la vista de diseño.
8. Selecciona el campo Frecuencia en la vista de diseño, abre la flecha que aparece en la parte superior izquierda del campo y en el pequeño recuadro que aparece selecciona Format As: Text.
9. Regresa ahora al árbol de archivos de la izquierda, dale click derecho a la lista Evaluaciones y selecciona Propiedades. En el cuadro de diálogo List Properties, dirígete al tab Supporting Files. Allí elige Elemento en Content type specific forms y dale click a Browse en Edit item form para seleccionar la forma que acabas de personalizar (EditFormPersonalizada.aspx en el ejemplo).
10. Guarda tus cambios y listo! Si ahora te diriges al portal con tu navegador y tratas de editar un elemento de la lista te toparás con esto:
El campo Frecuencia ya no es editable y por ende ningún usuario podrá modificarlo.
Como nota adicional, es posible que necesites hacer check-in del formulario o publicarlo si es que el usuario con el que hiciste esos cambios tiene privilegios limitados sobre el sitio.
Espero sea de utilidad,
Julio
Similar Posts
- Cómo utilizar Autenticación Basada en Formularios para Autenticar Usuarios de Active Directory en MOSS 2007
- Cómo hacer una instalación básica de SharePoint Server 2007 en Windows Server 2008
- Cambiando el lenguaje de tu sitio SharePoint
