Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sort only one column with jquery and tablesorter

At the moment im using jquery tablesorter and tablesorter filter. My problem is that i want that my filter would filter only one column. Now its filtering all columns. You can see my site here: http://tinyurl.com/3j38vye

Now its filtering all colums and i'd like to filter only "Lainasumma" column. Could you also say why its not sorting amounts properly?

like image 854
Snow Avatar asked Oct 21 '11 12:10

Snow


2 Answers

Did you look at the documentation? Here is an example of how you would disable some columns that use tablesorter. You can pass a headers object in which you can specify which columns are disabled.

An alternate method is to add class="{sorter: false}" to the cells on which you want to disable the sorting.

Edit

You can use $.tablesorter.addParser() method to define custom sorting (see the jsFiddle example above).

Code

$(document).ready(function() {
    $.tablesorter.addParser({
        id: 'custom_sort_function',
        is: function(s) {
            return false;
        },
        format: function(s) {
            // the € symbol causes the tablesorter to treat the value as a string
            // remove it and let the tablesorter treat it as numeric
            // use /\u20AC/ instead of /€/ if regex does not work as expected
            return s.replace(/€/, '');
        },
        type: 'numeric'
    });
    $("#pikavipit").tablesorter({
        headers: {
            0: {
                sorter: false
            },
            1: {
                sorter: false
            },
            2: {
                sorter: 'custom_sort_function'
            },
            3: {
                sorter: false
            },
            4: {
                sorter: false
            },
            5: {
                sorter: false
            },
            6: {
                sorter: false
            },
            7: {
                sorter: false
            },
            8: {
                sorter: false
            }
        }
    });
});
like image 185
Salman A Avatar answered Oct 19 '22 08:10

Salman A


The easiest solution for that is to modify the selectorHeaders in the javascript file and set it to something other like:

 selectorHeaders: 'thead th.sortable'

Now, the only thing you have to do is to give only the collumns you want to be sortable the css class sortable.

like image 6
bernhardh Avatar answered Oct 19 '22 08:10

bernhardh