2010-12-06 14 views
0

すべての行(tbody)が除外されると、このプラグインを変更してテーブル全体(つまりヘッダー)を非表示にするにはどうすればよいですか?逆に、1つ以上の行が再表示された場合、ヘッダーなどを表示したい。jQueryプラグインuiTableFilterの変更

ありがとうございます。

documentationでジェイ

+0

使用しているプラ​​グインのリンクを表示できますか? – kobe

+0

@gov私はこれが1つだと思う:http://plugins.jquery.com/project/uiTableFilter – Trufa

+0

それは正しい、@トルファ。 – birdus

答えて

0

は言うされています

  • ifHidden - HOUがして、このコールバックを使用する場合は、1つのまたは複数の要素がそう

を隠されていた場合に実行するコールバック.hide()あなたが望むものを得るかもしれません。

私は、あなたたちは具体的にあなたを助けることができるかもしれないそれを自分でやろうが、私はもしあなたのために行うことはできません:)

幸運を!

0

このコードスニペット(uiTableFilter)は、各テーブル行を検索して、検索対象のテキストが見つかるかどうかを調べます(名前を変更してメソッドの名前を変更しました)。存在する場合は、その行を非表示にするか(match()またはnoMatch())表示するかの2つの方法のいずれかを呼び出します。

elems.each(function() 
{ 
    var elem = $(this); 
    $.uiTableFilter.FoundSearchString(getText(elem), words, false) ? matches(elem) : noMatch(elem); 
} 

私は、このコードの後に​​次のコードを追加しました。このコードは、画面上に複数のテーブルがあり、それらを同時にすべてフィルタリングしているため、単純にされているよりも少し複雑です。私のテーブルには、 "SearchResultsTable"というクラスがあります。私は単にすべてのテーブルをつかみ、それらを反復して、それぞれに目に見える行数を取得します。表示されている行がない場合はヘッダーを非表示にします。それ以外の場合は表示します。

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(); 
    } 
}); 
関連する問題