javascript - 如何在数据表中添加复选框以进行行分组?

标签 javascript jquery html datatables

我的代码是这样的: http://jsfiddle.net/rkovmhkp/3/

     ...

       }).rowGrouping({
                    fnOnGrouped: function(groups){
                        console.log("Groups", groups);

                        for(key in groups){
                            if(groups.hasOwnProperty(key)){
                               $(groups[key].nGroup).css('background-color', '#F99');
                            }
                        }                   
                    }
                }); 

      ...

我想在左上角添加复选框。当用户选中该复选框时,系统将显示行分组数据表。当用户取消选中该复选框时,系统将显示没有行分组的数据表。谢谢

最佳答案

SOLUTION

使用下面的代码:

$(document).ready(function () {    
   initTable(true);

   $('.btn-row-grouping-enable').on('click', function(){       
      if(!this.checked){ 
          removeRowGrouping('#example');
      }

      initTable(this.checked);          
   });

});

function initTable(hasRowGrouping){   
     $('#example').dataTable({
         "bDestroy": true,
         "bLengthChange": false,
         "bPaginate": false,
         "bJQueryUI": true,
         "fnCreatedRow": function (nRow, aData, iDataIndex){
             $(nRow).css('background-color', /*oData.colour*/ '#99F');
         }
     });

     if(hasRowGrouping){
        $('#example').dataTable().rowGrouping({
           fnOnGrouped: function (groups) {
              console.log("Groups", groups);

              for (key in groups) {
                 if (groups.hasOwnProperty(key)) {
                     $(groups[key].nGroup).css('background-color', '#F99');
                 }
              }
          }
        });
     }
}

// Remove rowGrouping plugin
function removeRowGrouping(selector){
   var oSettings = jQuery(selector).dataTable().fnSettings();

   for (f = 0; f < oSettings.aoDrawCallback.length; f++) {
      if (oSettings.aoDrawCallback[f].sName == 'fnRowGrouping') {
           oSettings.aoDrawCallback.splice(f, 1);
           break;
      }
   }

   oSettings.aaSortingFixed = null;              
}

DEMO

参见this jsFiddle用于代码和演示。

LINKS

关于javascript - 如何在数据表中添加复选框以进行行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32827360/

相关文章:

javascript - npm live-server 安装 : symlink error (even when running as root/admin)

javascript - 代笔 - 需要更大的 Canvas

javascript - 无法重置 noUiSlider

javascript - 如何使用范围 slider 更新值?

javascript - 当我尝试在 javascript 中将日期转换为 toisostring 时,为什么要休息 1 天?

javascript - 获取 TinyMCE - gecko_spellcheck - 处理初始内容加载

javascript - 在 Lightswitch 2013 中添加自定义文本标签

jquery - 在 Jquery 中调整图像大小,保持加载时的宽高比

html - Canvas 元素的最大尺寸

jquery - 如何增加弹出窗口的宽度