Foros del Web » Programando para Internet » Jquery »

Filtrar por solo una columna

Estas en el tema de Filtrar por solo una columna en el foro de Jquery en Foros del Web. Que tal a todos tengo el siguiente problema la tabla que se genera (html) es un grid y estoy aplicando un filtro desde el cliente, ...
  #1 (permalink)  
Antiguo 16/04/2015, 07:37
 
Fecha de Ingreso: abril-2015
Mensajes: 3
Antigüedad: 9 años, 7 meses
Puntos: 0
Pregunta Filtrar por solo una columna

Que tal a todos tengo el siguiente problema la tabla que se genera (html) es un grid y estoy aplicando un filtro desde el cliente, que es un java script que ilustro a continuación:

//Filtrar los registros del grid principal
$(".filtrar tr:has(td)").each(function() {
var t = $(this).text().toLowerCase();
$("<td class='indexColumn'></td>")
.hide().text(t).appendTo(this);
});

$("#id_search").keyup(function() {
var s = $(this).val().toLowerCase().split(" ");
$(".filtrar tr:hidden").show();
$.each(s, function() {
$(".filtrar tr:visible .indexColumn:not(:contains('"
+ this + "'))").parent().hide();
});
});
Que les puedo decir es un ejemplo que anda ahi por la red funciona de maravilla el problema que yo tengo es el siguiente : el grid tiene cuatro columnas pero mi ultima columna es de solo un carácter el script busca en toda la tabla y encuentra las coincidencias, pero al ser mi ultima columna de solo un caracter la busqueda siempre la ganan los demas campos haciendo imposible que este filtro funcione para mi ultima columna, la pregunta en concreto es como filtrar desde el cliente una sola columna intente con un jquery pero no da resultado.
  #2 (permalink)  
Antiguo 17/04/2015, 06:22
(Desactivado)
 
Fecha de Ingreso: abril-2013
Ubicación: rosario
Mensajes: 248
Antigüedad: 11 años, 6 meses
Puntos: 17
Respuesta: Filtrar por solo una columna

No se entiende, que queres hacer filtrar por una sola columna de las cuatro?
  #3 (permalink)  
Antiguo 17/04/2015, 21:23
 
Fecha de Ingreso: abril-2015
Mensajes: 3
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: Filtrar por solo una columna

Si deseo filtrar solo una columna del grid
  #4 (permalink)  
Antiguo 18/04/2015, 09:19
 
Fecha de Ingreso: abril-2015
Mensajes: 3
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: Filtrar por solo una columna

Encontré la forma de lograr lo que quiero de la siguiente manera:

$('.filtrar tr:has(td)').each(function() {
var t = '';
$(this).find('td.indezar').each(function() {
t = $(this).text().toLowerCase();
});
$("<td class='indexColumn'></td>").hide().text(t).appendTo(this);
});

$("#id_search").keyup(function() {
var s = $(this).val().toLowerCase().split(" ");
$(".filtrar tr:hidden").show();
$.each(s, function() {
$(".filtrar tr:visible .indexColumn:not(:contains('"
+ this + "'))").parent().hide();
});
});

obviamente agregando la clase "filtrar" al grid (en html es un table) también la clase "indezar" a todas las celdas del grid con esto logro que el filtro al teclear un carácter busque la coincidencia de mi ultima columna (que es de un solo carácter), funciona así solo cuando la columna que quieres filtrar en sus filas tenga un solo carácter, seria interesante si alguien quiere indagar, realizar el filtro por cada columna, para aclarar el filtro con los scripts que he puesto funciona solo de dos formas o filtra las coincidencias en todas las columnas o filtra la coincidencia con la columna que solo posee un carácter en su registro, en un plano ideal la forma seria filtra por la columna que yo indique sin importar si esta conformada por un carácter o es un string

Etiquetas: columna, filtrar, funcion, html, javascript
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:12.