GridMvc 从分页网格中的其他页面获取 id 属性

GridMvc get id attributes from other pages in a paged Grid

我正在使用 GridMvc 显示数据库中的数据。 GridMvc 提供了非常有用的过滤器和排序网格。但是现在我遇到了一个问题:我想使用 JQuery 来获取一个 id 属性列表,并将这个列表传递给后端。但是网格是分页的,每页有 30 条记录。所以我只能从第 1 页获得 30 个 id 的列表。这是分页网格:

我想要做的是获取所有 href 值(例如从页面 div 获取 XX 的列表)。当用户触发导出按钮时,我定义了一个 JS 导出函数:

        $('#Export').click(function () {
        //Todo: Select all data from front end. Send a list to backend. 
        var Items = new Array();
        var hrefs = new Array();

        $('.pagination li').each(function () {
            hrefs.push($(this).find('a').attr('href'));
        });
        var i = 0;
        //var items = DeleteItems();
        while (i < hrefs.length) {
            //redirected to different pages
            document.location.href = '/GridView' + hrefs[i];

            //Save data
            $('#PCA-grid table').find('.grid-row').each(function (index, item) {
                //Find target items
                var id;
                var $checkbox = $(this).find('.DeleteSelected:first');
                //Set a for loop here to 
                if (!$checkbox.is(':checked')) {
                    id = Number($checkbox.attr('id'));
                    if (id != NaN) {
                        Items.push(id);
                    }
                }
            });

            i++;
        }
        //Sent list of ids to backend. Using URL redirect
        window.location.replace('/GridView/Export?items=' + Items);

    });

上面代码中已经描述了基本思想。我想要做的是从页面标签中获取 url。在 while 循环中,尝试重定向到目标页面,然后将此页面中的 id 属性推送到 Items 数组。但是当我首次使用 Chrome 工具时,while 循环没有按预期工作。没有重定向发生。

这个问题我错了吗? 我只想从当前网格中的所有页面获取id属性,然后将这个Items数组传递给后端。所以有人帮我吗?

据我考虑,在grid中通过分页获取所有需要下载的id属性是很困难的。我所做的是将页面重定向到另一个视图。在那个视图中,我隐藏了没有分页的相同网格。发送的 id 需要从网格下载到后端,然后为客户端用户生成文件。

不确定这种方式是否是最佳做法。但是我用这个方法解决了这个问题。