【问题标题】:How to get the all checkbox count on screen in SlickGrid?如何在 SlickGrid 中获取屏幕上的所有复选框计数?
【发布时间】:2020-10-14 07:00:18
【问题描述】:

在 Slick-grid 中,我们在 3 列的标题行上有 3 个复选框,单击复选框时,列中的所有复选框都应选中。目前它工作正常,但我需要计算页面上所有复选框的数量,我的意思是在 3 列中,以及在每列中总共检查了多少个复选框?

例如 第 1 - 100 个复选框 第 2 列 - 25 个复选框 第 3 列 - 75 个复选框

总共 200 个复选框

首先,我需要获取页面上的总复选框数。 第二,每列检查了多少个复选框? 第三 - 在所有 3 列中选中了多少个复选框?

是否有任何代码可以在 Slick-grid 中获取这些详细信息?

请帮忙。

【问题讨论】:

    标签: jquery slickgrid


    【解决方案1】:

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <input type="checkbox" />
    <input type="checkbox" />
    <button onclick="countCheckBoxes()"> count</button>
    
    <script>
    function countCheckBoxes(){
    
    var allCheckBoxes = $('input[type="checkbox"]');
    var totalTrue = 0;
    var totalFlase = 0;
    for(i=0;i<allCheckBoxes.length;i++){
    
    if(allCheckBoxes[i].checked){
    totalTrue= totalTrue+1;
    }else{
    totalFlase=totalFlase+1;
    }
    }
    console.log("total checked :"+totalTrue+" --- total unchecked "+totalFlase+"");
    }
    
    </script>

    【讨论】:

    • 所以在控制台中它会显示有多少已选中和未选中,如果您认为这是答案,您可以将其修改为您需要的标记答案,否则我很乐意添加更多信息@vinoth kumar
    • 我没有完全按照你的描述创建它,但你可以修改它以满足你的需要,但结构是你想要的@vinoth kumar
    • 很好的尝试,@Alireza Madad,但 Slickgrid 不会一次显示所有行 - 只是可见的行。因此,您的代码或多或少是正确的,但您需要使用 SlickGrid 值所基于的数据数组。假设这些复选框绑定到一个基础值 - vinoth kumar?
    • 未显示单元格有 display:none;属性或只是它们在 html 上不存在导致 idk 如果它们不存在该怎么办@Ben McIntyre
    • SlickGrid 不会在页面加载时加载所有复选框。它将虚拟渲染,因此我们无法一次获得所有复选框。它将加载 15 个复选框和 onscroll,它将加载另外 15 个复选框。
    【解决方案2】:

    假设您使用的是 6pac/SlickGrid 分支...

    如果您使用 Slick.Grid 对象(没有 DataView)来获取数据,那么您只需获取所选行的长度

    var count = grid.getSelectedRows().length;
    

    如果您使用 Slick.DataView 并使用 Pagination,那么您也可以使用 grid.getSelectedRows(),但您可能会得到意想不到的结果,因为它只返回当前页面选择。为了解决这个问题,您将能够使用即将合并(并最终在新版本中发布)的 PR #542PR #544 中出现的一些新功能来处理此类问题。因此,假设这一切都已发布,您将能够使用新的 getAllSelectedIds 函数来做到这一点:

    var count = dataView.getAllSelectedIds().length;
    

    我猜它只回答了你问题的一部分,这不会告诉你检查了多少分组列,它只会告诉你检查了多少项目行。

    【讨论】:

      猜你喜欢
      • 2010-10-26
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      • 1970-01-01
      • 1970-01-01
      • 2016-03-17
      • 1970-01-01
      • 2016-10-05
      相关资源
      最近更新 更多