Domanda

Sto usando il tablesorter plugin jquery associato a questo eccezionale filtro tablesorter plugin.

Ho una casella di selezione sulla mia pagina che contiene un elenco di tutte le colonne della mia tabella. Voglio essere in grado di limitare il filtro solo alla colonna selezionata quando l'utente sceglie di selezionarlo.

Finora ho allegato un evento alla casella di selezione in questo modo:

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

Con un gestore in questo modo:

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

Questo imposta correttamente il valore predefinito per la colonna del filtro ma quando si verifica il filtro in realtà non utilizza quel valore. Sembra che il plugin ti permetta di impostare colonne filtrate solo in fase di costruzione. O la mia novità jquery non riesco a capire come ottenere il bit di dati che devo girare.

È stato utile?

Soluzione

questo mi ha procurato quello che volevo in una sorta di forza bruta. Sto ancora cercando una soluzione migliore.

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];
  }
}

Altri suggerimenti

Lavoro larghezza jFilterSeleziona i filtri per Tablesorter:

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

Ho avuto lo stesso problema. In caso di modifica della casella di selezione, basta ricaricare la pagina e il problema verrà risolto.

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

function refreshPage(){
        location.reload();
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top