Cet extrait de code (provenant de uiTableFilter) recherche dans chaque ligne du tableau s'il peut trouver le texte recherché (j'ai renommé sa méthode avec un nom plus agréable). Si c'est le cas, il appelle l'une des deux méthodes, soit cacher ou afficher cette ligne (matches() ou noMatch()).
elems.each(function()
{
var elem = $(this);
$.uiTableFilter.FoundSearchString(getText(elem), words, false) ? matches(elem) : noMatch(elem);
}
J'ai ajouté le code suivant après ce code. Ce code est légèrement plus complexe qu'il ne l'aurait été simplement parce que j'ai plusieurs tables sur mon écran et je les filtre tous simultanément. Mes tables ont la classe "SearchResultsTable". Je saisis simplement toutes mes tables, je les parcourais, obtenant le nombre de lignes visibles dans chacune d'entre elles. S'il n'y a pas de lignes visibles, je cache l'en-tête, sinon, je le montre.
var grids = $(".SearchResultsTable");
grids.each(function()
{
var grid = $(this);
var rowCount = grid.find("tbody:first > tr:visible").length;
if (rowCount > 0)
{
grid.find("thead").show();
}
else
{
grid.find("thead").hide();
}
});
pouvez-vous donner le lien pour le plugin que vous utilisez? – kobe
@gov Je pense que c'est celui-ci: http://plugins.jquery.com/project/uiTableFilter – Trufa
C'est vrai, @Trufa. – birdus