0

グリッドビューのフィルター テキスト ボックス用のスクリプトと、各行のチェック ボックス用のスクリプトがあります。グリッドで何かをフィルタリングすると、フィルタリングされた行がいくつか取得されます.selectallスクリプトを使用して、フィルタリングされた行を選択したいと思います。しかし、グリッド内のすべての結果を選択しています。

チェックボックススクリプトを選択:

      $("#<%=gvCheckDetails.ClientID%> input:checkbox").live("click", function(event) {
            var tbl = $("#<%=gvCheckDetails.ClientID%>");
            var checkbox = $(this);
            var checkState = checkbox.is(":checked");
            var ancestorName = checkbox.parent().parent()[0].nodeName; // tr or th?                

            // if it's a header, we'll work with all rows (select on or off)
            if (ancestorName.toLowerCase() === "th") {
                $(tbl[0].config.rowsCopy).each(function() {
                    if (checkState)
                        $(this).find("input:checkbox").attr('checked', true);
                    else
                        $(this).find("input:checkbox").removeAttr('checked');
                });
            }
        });

selectallがチェックされているときにフィルタリングされた値のみを選択するように上記のスクリプトを変更する方法を教えてください(検索テキストボックスはaspxのjscriptを使用してグリッド行を動的にフィルタリングしています)

4

2 に答える 2

0

:visibleセレクターは通常、そのトリックを行います。DOM 内の親を含め、表示されている要素のみをフィルタリングします。

$(tbl[0].config.rowsCopy).filter(':visible').each(function() {
于 2013-08-27T21:39:48.830 に答える
0

Augusto Menの回答に基づいて解決:

交換したばかり

$(this).find("input:checkbox").attr('checked', true);

$(this).filter(':visible').find("input:checkbox").attr('checked', true);

そのため、チェックボックスのチェックは、表示可能なもののみをフィルタリングして適用するようになりました。

ありがとうございます

于 2013-08-28T14:56:07.170 に答える