0

我有 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'));
                    }
                }
            });
        });
    }
4

1 回答 1

0

您必须使用隐藏字段,当用户选择一个复选框时,将其添加到隐藏字段,如逗号分隔的 Id,当每个页面因分页而移动时,检查当前页面中的任何 id 是否属于隐藏字段,如果是将它们标记为选中。

于 2013-05-17T13:30:50.430 回答