jquery - 数据表 - 带复选框的行分组

标签 jquery html checkbox datatables grid

我有一个包含以下数据的数组:

{"Id":1,"ProgramName":"Adobe Reader XI 
(11.0.23)","FileName":"AcroBroker.exe","FileHash":"1bfb99860246e334c00e4427b54afc3e"}

我想使用数据表来显示按程序名称分组的数据网格,每行上都有一个复选框(还有组名称行!),如果用户单击组行的复选框,则其所有子行都将被选中检查过,类似这样但带有数据表插件!

http://jsfiddle.net/Suninsky/564RP/12/

最佳答案

解决方案

我是 jQuery DataTables Checkboxes 的作者插件。

我添加了example演示如何将 jQuery DataTables Checkboxes 扩展与 RowGroup 扩展一起使用。

下面是完整代码的摘录,演示了最重要的部分。

var table = $('#example').DataTable({
   // ... skipped ...
   'orderFixed': [4, 'asc'],
   'rowGroup': {
      'dataSrc': 'office',
      'startRender': function(rows, group) {
         // Assign class name to all child rows
         var groupName = 'group-' + group.replace(/[^A-Za-z0-9]/g, '');
         var rowNodes = rows.nodes();
         rowNodes.to$().addClass(groupName);

         // Get selected checkboxes
         var checkboxesSelected = $('.dt-checkboxes:checked', rowNodes);

         // Parent checkbox is selected when all child checkboxes are selected
         var isSelected = (checkboxesSelected.length == rowNodes.length);

         return '<label><input type="checkbox" class="group-checkbox" data-group-name="' 
                + groupName + '"' + (isSelected ? ' checked' : '') +'> ' + group + ' (' + rows.count() + ')</label>';
      }         
   }
} );

// Handle click event on group checkbox
$('#example').on('click', '.group-checkbox', function(e){
   // Get group class name
   var groupName = $(this).data('group-name');

   // Select all child rows
   table.cells('tr.' + groupName, 0).checkboxes.select(this.checked);
});

// Handle click event on "Select all" checkbox
$('#example').on('click', 'thead .dt-checkboxes-select-all', function(e){
   var $selectAll = $('input[type="checkbox"]', this);      
   setTimeout(function(){
      // Select group checkbox based on "Select all" checkbox state
      $('.group-checkbox').prop('checked', $selectAll.prop('checked'));
   }, 0);
});     

演示

参见this jsFiddle获取完整代码和演示。

链接

jQuery DataTables: Row grouping and checkboxes

关于jquery - 数据表 - 带复选框的行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47612581/

相关文章:

jquery - 同时淡出和上滑?

jquery - 使用 CSS 自定义单选框和复选框

javascript - 用于 jQuery 循环插件的 Angularjs 指令

javascript - 碰撞数组无法正常工作javascript

javascript - Jquery prepend 不适用于 div 标签

html - ASP.NET-MVC Linq2Sql 逻辑根据条件获取链接项

html - 在 3 列页面中,当滚动条出现时固定第三列

按钮中的 HTML 电子邮件链接在 Outlook 桌面中不起作用

javascript - 选中复选框时突出显示表格行

php - 将复选框 PHP 表单项作为数组插入到 MySQL 数据库