asp.net-mvc - 在 ASP.NET MVC 应用程序中分页时保持 Telerik MVC 网格中的复选框状态

标签 asp.net-mvc grid telerik

我正在使用 Telerik MVC Grid,其中一列是复选框。如果我选择复选框,然后转到第 2 页,然后返回第 1 页,则所有复选框都消失了。这当然是 HTTP 的工作方式。现在,我将所有选中的复选框放在隐藏字段中,但是由于网格会进行某种回发,所以下次我的隐藏字段会被清除。

最佳答案

如果您使用客户端数据绑定(bind),您可以使用下面的 javascript/jquery 来维护复选框状态。

保持复选框状态:

var selectedIds = [];

$(document).ready(function () {
    //wire up checkboxes.
    $('#YOUR_GRID_ID :checkbox').live('change', function (e) {
        var $check = $(this);
        console.log($check);
        if ($check.is(':checked')) {
            //add id to selectedIds.
            selectedIds.push($check.val());
        }
        else {
            //remove id from selectedIds.
            selectedIds = $.grep(selectedIds, function (item, index) {
                return item != $check.val();
            });
        }
    });
});

数据绑定(bind)后恢复复选框状态:
function onDataBound(e) {
    //restore selected checkboxes.
    $('#YOUR_GRID_ID :checkbox').each(function () {
        //set checked based on if current checkbox's value is in selectedIds.
        $(this).attr('checked', jQuery.inArray($(this).val(), selectedIds) > -1);
    });
}

我的博客上提供了更详细的解释:
http://blog.cdeutsch.com/2011/02/preserve-telerik-mvc-grid-checkboxes.html

关于asp.net-mvc - 在 ASP.NET MVC 应用程序中分页时保持 Telerik MVC 网格中的复选框状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4761323/

相关文章:

HTML CSS : How to align grid to content area?

wpf - MVVM/WPF 应用 RadGridView 绑定(bind)到 EntityFrameworkDataSource

javascript - 使用键盘控制更改日期

c# - 操作无法完成,因为已使用 MVC 4 处理 DbContext

asp.net-mvc - MVC 6/vNext 中的 HttpResponse.Filter?

c# - ASP.NET MVC 3 - 创建仅用于返回的动态对象

c# - 文件夹中的 MVC 文件组织

c# - 以编程方式在 wpf : auto rowheight doesn't seem to work 中填充网格

asp.net - 我的gridview分页/排序效率低下吗?

asp.net - 获取客户端 RadGrid 选定行中单元格的值