使用jQuery在分页期间无法维护复选框

时间:2013-05-17 12:00:26

标签: asp.net jquery

我有4个分页按钮(第一个,后移,后退和最后一个)。 我想在分页期间保持复选框。问题是 当我选择任何复选框然后转到下一页然后返回到同一页面时,它不显示先前选中的复选框,但是一旦点击下一页,在进入下一页之前它会显示已检查的值。

这是我的代码,任何人都可以指导我在哪里做错了吗?

    $(function() {
        toggleSelectBtnOnCheck();
    });

    function toggleSelectBtnOnCheck() {
        debugger;
        //Register checkbox click handler to be called when Ajax requests complete.
        $('#contentDiv').ajaxComplete(function() {
            $('.tdHeadForCheckboxRadioButton').append('<input class="search" onclick="checkUnchekAllCheckboxes(this);" type="checkbox"/>');
            $('.afirst, .aprev, .anext, .alast, .search:checkbox').click(function() {
                var selectedVal = $(this).closest('td');
                var selectClaim = selectedVal.next().text();
                var selectSuffix = selectedVal.next().next().text();
                var ClaimSuffix = selectClaim + '|' + selectSuffix + ',';
                if ($(this).is(':checked')) {
                    document.getElementById('hdnChkClaim').value += ClaimSuffix;
                } else if ($('#hdnChkClaim').val().indexOf(ClaimSuffix) != -1) {
                    $('#hdnChkClaim').val($('#hdnChkClaim').val().replace(ClaimSuffix, ''));
                }
                alert($('#hdnChkClaim').val());
                if (jQuery(this).attr("href") != "") {
                    //button.disable($('span.btnSelect'));
                    var SelectedItemsCheckboxID = [];
                    if ($('#hdnChkClaim').val() != '') {
                        debugger;
                        if (ClaimSuffix.indexOf(',') != -1) {
                            ClaimSuffix = ClaimSuffix.substr(0, ClaimSuffix.length - 1); //remove last ','
                        }
                        SelectedItemsCheckboxID = $('#hdnChkClaim').val().split(',');
                        for (i = 0; i < SelectedItemsCheckboxID.length; i++) {
                            var claimDetails = SelectedItemsCheckboxID[i].split('|');
                            a = claimDetails[0];
                            b = claimDetails[1];
                            $('tr').filter(function(index) {
                                var columns = $(this).children('td');
                                alert(columns.eq(1).text() === a && columns.eq(2).text() === b);
                                return columns.eq(1).text() === a && columns.eq(2).text() === b;
                            }).find('input:checkbox').attr("checked", true);
                            ;
                        }
                    }
                    if ($('.search:checkbox:checked').length > 0) {
                        button.enable($('span.btnSelect'));
                    } else {
                        button.disable($('span.btnSelect'));
                    }
                }
            });
        });
    }

1 个答案:

答案 0 :(得分:0)

你必须使用隐藏字段,当用户选择一个复选框时,将其添加到隐藏字段,如逗号分隔ID,当每个页面被移动时,由于分页检查当前页面中的任何id是否属于隐藏如果是,则标记要检查的字段。