Social Icons

viernes, 8 de julio de 2011

Escondiendo los List View web parts cuando están vacíos

Hoy me han pedido que esconda los List View web parts de la solución cuando están vacíos... No me gusta el javascript, pero era obviamente la solución más simple, así que le pregunté a Google y me mandó a este post.

Copié el código en un web part Editor de Contenido y funcionó más o menos, pero cuando intenté esconder también las cabeceras de las columnas y añadir un mensaje solo funcionaba para dos de los tres web parts que tenía en la página cosas veredes asi que después de buscar un ratito más en Google lo cambié a:

<script type="text/javascript">
 function HideEmptyWebParts()
 {
   var itemsfound = new Array;
   var elements = document.getElementsByTagName('*');
   for(var i=0;i<elements.length;i++)
   {
      if(elements[i].className == 'ms-vb')
      {
         itemsfound.push(elements[i]);
      }
   }
  
   for (var i=0;i<itemsfound.length;i++)
   {
       if (itemsfound[i].innerHTML.indexOf("There are no items to show in this view of the")>-1)
       {
                itemsfound[i].parentNode.parentNode.parentNode.parentNode.innerHTML="<div class='ms-vb'>Not enough data to produce a dashboard.</div>";
         
       }
   }
 }

_spBodyOnLoadFunctionNames.push("HideEmptyWebParts")
 
</script>

Y entonces sí que empezó a funcionar como esperaba.

No hay comentarios: