Wednesday, 16 April 2014

Creation of quick alphabetical ladder for SharePoint View



Output result:

We will be getting a filtered data like below, filtered on top of title starting with alphabet.
 

Process to create this:
  • Create a calculated column<<Initial>> in the list having below formula:
=IF(OR(LEFT(Title)<"a",LEFT(Title)>"z"),"other",LEFT(Title))

        Above formula, will extract initial letter from the title text.


 
  • Create a ladder to show 

<table cellpadding=4 cellspacing=0>
<tr>
   <td><a href="#" onClick="showAll(); return false;">All</a></td>
   <td><a href="#" onClick="setFilter('a'); return false;">A</a></td>
   <td><a href="#" onClick="setFilter('b'); return false;">B</a></td>
   <td><a href="#" onClick="setFilter('c'); return false;">C</a></td>
   <td><a href="#" onClick="setFilter('d'); return false;">D</a></td>
   <td><a href="#" onClick="setFilter('e'); return false;">E</a></td>
   <td><a href="#" onClick="setFilter('f'); return false;">F</a></td>
   <td><a href="#" onClick="setFilter('g'); return false;">G</a></td>
   <td><a href="#" onClick="setFilter('h'); return false;">H</a></td>
   <td><a href="#" onClick="setFilter('i'); return false;">I</a></td>
   <td><a href="#" onClick="setFilter('j'); return false;">J</a></td>
   <td><a href="#" onClick="setFilter('k'); return false;">K</a></td>
   <td><a href="#" onClick="setFilter('l'); return false;">L</a></td>
   <td><a href="#" onClick="setFilter('m'); return false;">M</a></td>
   <td><a href="#" onClick="setFilter('n'); return false;">N</a></td>
   <td><a href="#" onClick="setFilter('o'); return false;">O</a></td>
   <td><a href="#" onClick="setFilter('p'); return false;">P</a></td>
   <td><a href="#" onClick="setFilter('q'); return false;">Q</a></td>
   <td><a href="#" onClick="setFilter('r'); return false;">R</a></td>
   <td><a href="#" onClick="setFilter('s'); return false;">S</a></td>
   <td><a href="#" onClick="setFilter('t'); return false;">T</a></td>
   <td><a href="#" onClick="setFilter('u'); return false;">U</a></td>
   <td><a href="#" onClick="setFilter('v'); return false;">V</a></td>
   <td><a href="#" onClick="setFilter('w'); return false;">W</a></td>
   <td><a href="#" onClick="setFilter('x'); return false;">X</a></td>
   <td><a href="#" onClick="setFilter('y'); return false;">Y</a></td>
   <td><a href="#" onClick="setFilter('z'); return false;">Z</a></td>
   <td><a href="#" onClick="setFilter('other'); return false;">Other</a></td>
 </tr>
</table>


  • Add below simple JavaScript snippet, It will filter on click of letters
    <script language="javascript">
    var strUrl = location.href;
    var strFilterField = "Initial";

     function showAll()
     {
           if(strUrl.indexOf("?") > -1)
       {
         strUrl = strUrl.split("?")[0];
       }
       location.href = strUrl;
     }

     function setFilter(strValue)
     {
       if(strUrl.indexOf("?") > -1)
       {
         strUrl = strUrl.split("?")[0];
       }
       location.href = strUrl + "?FilterField1=" +  strFilterField + "&FilterValue1=" + strValue;
     }
    </script>

  • Finally, On click on alphabets data will be displayed:
 

 

No comments:

Post a Comment