aspx/html 中的 50000 个复选框太重了 - 还有其他选择吗?

50000 checkboxes in aspx/html too heavy -any alternative?

要求在一个 aspx 页面中有 50000 个复选框。 目前我已经在 aspx 中实现了,页面很慢,选择很慢,有时应用程序挂起。负载太大了。 当前页面大小为 10 mb,我也需要减小它。

我正在寻找一种替代方法,例如 jquery 或者需要记住我需要使用复选框的方法。

我尝试过但无济于事的事情:

如有任何答复,我们将不胜感激。

如果您尝试 select 使用代码中的代码来选中复选框,那将会很慢,因为它是前端应该发生的事情的后端解决方案。即使您设置分页以便一次只显示 50 个复选框,如果您在后面的代码中进行检查,它仍然会很慢。要使用 jQuery 的 select 复选框,这是一个更快的解决方案,请尝试这样的事情:

$(document).ready(function () {
    $('#body').on('click', 'input[type=submit]#uxSelectAll', function () {
        $(this).toggleClass("checked");
        var isChecked = $(this).hasClass("checked");
        $('input[type=submit]#uxSelectAll').val(isChecked ? "Unselect All" :  "Select All");
        $(this).prev().find(":checkbox").prop("checked", isChecked);
        return false;
    });
});

这里有一个 Select 全部按钮,可在单击时选中和取消选中复选框。您可以 select 使用 select 或像这样的复选框:

$(this).find(":checkbox").prop("checked", true);

注意:此问题假设您使用的是复选框。

首先,如果您要渲染 50k checkboxes/rows,我建议您可以对设计进行一些重构?也许您可以考虑更高级别的行分组,并使用更少数量的复选框更新相关 entities/rows?

的集合

但如果您确实需要 50k 个复选框,您可能需要考虑分页以将它们分成合理数量的页面。

因此,正如您所说,您使用的是 aspx 页面,我假设它是一个 Web 表单应用程序。如果是这种情况,您可以使用 GridView 控件为您管理分页(http://quickstarts.asp.net/QuickStartv20/aspnet/doc/ctrlref/data/gridview.aspx 处的示例,link 处也有一个分页示例)。