Ran into an awesome jQuery plugin today while trying to find a quick way to add filtering and sorting to a table on the client machine rather than on the server side. It’s called TableSorter.

You can easily enable client side filtering, sorting and paging with a few lines of javascript and a multitude of options to customize it to your needs.

Here’s a demo. You can click on the headers to sort or type into the textbox to filter by FirstName or LastName.

Search:

Last Name First Name Owing
King Justin $22.00
Liu John $35.00
Truong Michelle $100.00
Gfader Peter $50.00

 

This was implemented as follows:

<table id="myTable" border="1">
    <thead> 
        <tr>
            <th>Last Name</th>
            <th>First Name</th>
            <th>Owing</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>King</td>
            <td>Justin</td>
            <td>$22.00</td>
        </tr>
        <tr>
            <td>Liu</td>
            <td>John</td>
            <td>$35.00</td>
        </tr>
        <tr>
            <td>Truong</td>
            <td>Michelle</td>
            <td>$100.00</td>
        </tr>
        <tr>
            <td>Gfader</td>
            <td>Peter</td>
            <td>$50.00</td>
        </tr>
    </tbody>
</table>

Then add the following to your jQuery’s document.ready function.

  jQuery(document).ready(function() {
    $("#myTable")
      .tablesorter({debug: false, widgets: ['zebra'], sortList: [[0,0]]})
      .tablesorterFilter({filterContainer: $("#filter-box"),
                          filterClearContainer: $("#filter-clear-button"),
                          filterColumns: [0,1],
                          filterCaseSensitive: false});
  });

2 Comments