Problemi con filtro tabella HTML

  • Creatore Discussione Creatore Discussione wcafass
  • Data di inizio Data di inizio

wcafass

Nuovo Utente
14 Nov 2012
1
0
0
Ciao a tutti,
sto impazzendo con uno script Jquery.

Ho creato una tabella runtime utilizzando un datasource e sempre runtime ho inserito nell'Header della tabella dei campi Testo (uno per colonna) nei quali l'utente puo' inserire valori da ricercare nella colonna corrispondente della tabella.

Il codice utilizzato per eseguire il filtro e' il seguente:
Codice:
function filtra() {
        $('#<%=lblNoRecords.ClientID%>').css('display', 'none');
        var grid = $("#<%=GridView1.ClientID%> tr:has(td)");
        grid.each(function () {
            $(this).css('display', '');
        });

        var iCounter = 0;
        var filtri = new Array();
        var i = 0;
        var grid1 = $('#<%=GridView1.ClientID%> th input');
        grid1.each(function () {
            var lnkText = $(this).val().toLowerCase().trim();
            if (lnkText != "") {
                filtri[i] = lnkText;
            }
            else {
                filtri[i] = 'notFilter';
            }
            i += 1;
        });
        
        i = 0;
        
        for (var r = 0; r < filtri.length ; r++) {
            grid.each(function () {
                if (filtri[r] != 'notFilter') {
                    var tdx = "td:eq(" + r + ")";
                    var cell = $(this).find(tdx).text().toLowerCase().trim();
                    if (filtri[r] != '') {
                        if (cell.indexOf(filtri[r]) < 0) {
                            $(this).css('display', 'none');
                        }
                        else {
                            $(this).css('display', '');
                            iCounter++;
                        }
                    }
                    else {
                        $(this).css('display', '');
                        iCounter++;
                    }
                }
            });
        }
        if (iCounter == 0) {
            $('#<%=lblNoRecords.ClientID%>').css('display', '');
        }
    };

il mio problema e' il seguente: se inserisco un valore solo di ricerca tutto ok, se inserisco due valori da ricercare mi esegue la ricerca solo nella colonna con indice maggiore.
praticamente perde il filtraggio gia' fatto sul primo campo.

so che che esistono plugins jquery che gia' fanno quest'operazione (vedi datatables) ma per problemi che non sto qui ad elencare, non posso utilizzarli.

potete darmi qualche suggerimento?
thx
 

Discussioni simili