Ocultar campos del formulario de registro de metadatos de un documento
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.
http://sharepointsherpa.com/2008/08/26/sharepoint-2007-hiding-fields-on-newformaspx-and-editformaspx-the-easy-way/
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>