Muchas veces cuando trabajamos con site columns aplicados a listas o bibliotecas y sobre esta se aplican workflows, hay ciertos campos requeridos por el workflow para consulta o actualización que no deberían mostrarse a los usuarios en los formularios de «Nuevo registro» o «Actualización» de un elemento.
Si es que nosotros configuramos un campo para que este sea oculto, no se resuelve el problema debido a que a través del workflow no es posible acceder a estos campos.
Una solución práctica es incorporar una lógica de javascript sobre nuestro formularios, que oculte los campos a la vista del usuario.
En el siguiente enlace se explica paso a paso como lograr este resultado.
El javascript es el siguiente:
<script language=«javascript» type=«text/javascript»>
_spBodyOnLoadFunctionNames.push(«hideFields»);
function findacontrol(FieldName) {
var arr = document.getElementsByTagName(«!»);
// get all comments
for (var i=0;i < arr.length; i++ ) { // now match the field name
if (arr[i].innerHTML.indexOf(FieldName) > 0)
{ return arr[i]; }
}
}
function hideFields() {
var control = findacontrol(«Title»);
control.parentNode.parentNode.style.display=«none»;
control = findacontrol(«Document Link»);
control.parentNode.parentNode.style.display=«none»;
control = findacontrol(«PublishDate»);
control.parentNode.parentNode.style.display=«none»;
}
</script>
El javascript se debe insertar entre las etiquetas <asp:Content ContentPlaceHolderId=»PlaceHolderMain» runat=»server»> y </asp:Content>