【问题标题】:50000 checkboxes in aspx/html too heavy -any alternative?aspx/html 中的 50000 个复选框太重 - 任何替代方案?
【发布时间】:2015-05-08 05:30:06
【问题描述】:

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

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

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

  • ASPX 列表框
  • HTML div-复选框
  • 基础设施
  • iframe。

不胜感激。

【问题讨论】:

  • 50000 个复选框?我希望这是一个练习......
  • 只是想知道,在一页上获得 50000 个复选框的目的是什么?
  • 否决,因为您没有给出具体的理由,这是必需的。从用户体验的角度来看,使用此数量的复选框显示给用户是完全不可接受的。
  • @user2040600 但是你应该对你的数据进行分页,不管你想做什么
  • 让我猜猜,一个复选框的网格?

标签: c# jquery asp.net checkbox infragistics


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    $(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;
        });
    });
    

    这里有一个“全选”按钮,可在单击时选中和取消选中复选框。您可以使用这样的选择器选择复选框:

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

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

    【讨论】:

      猜你喜欢
      • 2011-12-18
      • 2012-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-04
      • 1970-01-01
      相关资源
      最近更新 更多