Pregunta

Estoy usando el tablesorter jquery plugin emparejado con este excelente plugin tablesorter filter .

Tengo un cuadro de selección en mi página que contiene una lista de todas las columnas de mi tabla. Quiero poder limitar el filtro solo a la columna seleccionada cuando el usuario elija seleccionarlo.

Hasta ahora he adjuntado un evento al cuadro de selección así:

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

Con un controlador como este:

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

Esto establece correctamente el valor predeterminado para la columna de filtro, pero cuando ocurre el filtro, en realidad no usa ese valor. Parece que el complemento le permite establecer columnas filtradas solo en la construcción. O mi jquery newbiness no puede encontrar la manera de obtener la información que necesito cambiar.

¿Fue útil?

Solución

esto me dio lo que quería en una especie de fuerza bruta. Todavía estoy buscando una mejor solución.

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

Otros consejos

Trabajo ancho jFilterSeleccione los filtros para Tablesorter:

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

Tuve el mismo problema. En caso de cambio del cuadro de selección, simplemente vuelva a cargar la página y su problema se resolverá.

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

function refreshPage(){
        location.reload();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top