0

我有一个用于在 gridview 上过滤文本框的脚本和用于每行复选框的脚本。当我在网格中过滤某些东西时,我会得到一些过滤的行。我想使用 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');
                });
            }
        });

任何人都可以帮助我如何修改上面的脚本以在选中全选时仅选择过滤的值(搜索文本框正在使用 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 回答