Question

J'utilise le plug-in tablesorter jquery associé à cet excellent filtre de tablesorter plug-in.

Sur ma page, une zone de sélection contient une liste de toutes les colonnes de ma table. Je souhaite pouvoir limiter le filtre à la colonne sélectionnée uniquement lorsque l'utilisateur choisit de le sélectionner.

Jusqu'à présent, j'ai associé un événement à la zone de sélection, comme suit:

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

Avec un gestionnaire comme celui-ci:

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

Ceci définit correctement la valeur par défaut pour la colonne de filtre, mais lorsque le filtre se produit, il n’utilise pas cette valeur. Il semble que le plugin vous permette de définir des colonnes filtrées uniquement lors de la construction. Ou ma nouveauté jQuery ne peut pas comprendre comment obtenir le peu de données dont j'ai besoin pour retourner.

Était-ce utile?

La solution

Cela m'a donné ce que je voulais d'une manière assez brutale. Toujours à la recherche d'une meilleure 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];
  }
}

Autres conseils

Je travaille la largeur jFilterSélectionnez les filtres pour Tablesorter:

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

J'ai eu le même problème. Lors de la modification de la zone de sélection, rechargez simplement la page et votre problème sera résolu.

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

function refreshPage(){
        location.reload();
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top