Question

I am using the tablesorter jquery plugin paired with this great tablesorter filter plugin.

I have a select box on my page that contains a list of all the columns of my table. I want to be able to limit the filter to only the selected column when the user chooses to select it.

So far I have attached an event to the select box like so:

$('#SelectedColumn').bind("change", columnSelected);

With a handler like so:

function columnSelected() {
  var selected = $(this).val();
  $.tablesorterFilter.defaults.filterColumns = [selected];
}

This does correctly set the default value for the filter column but when the filter happens it doesn't actually use that value. It appears the plugin allows you to set filtered columns only on construction. Or my jquery newbiness cant figure out how to get at the bit of data I need to flip.

Was it helpful?

Solution

this got me what I wanted in a brute force sort of way. Still looking for a better solution.

function columnSelected() {
  var selected = $(this).val();
  $('#GoToTextBox').val('').focus();
  if (selected == 'Any') {
    $table.get(0).config.filter[0].filterColumns = null;
  } else {
    $table.get(0).config.filter[0].filterColumns = [selected];
  }
}

OTHER TIPS

I work width jFilterSelect the filters for Tablesorter:

http://www.jordigirones.com/131-filtros-desplegables-con-tablesorter.html

I had same problem. On change event of select box, just reload the page and your problem will be solved.

<select name="search" id="search" onchange="refreshPage()" >

function refreshPage(){
        location.reload();
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top