Как сгруппировать строки в таблицу данных без потери данных в нумерации страниц - PullRequest
1 голос
/ 15 июня 2019

Я пытаюсь создать таблицу, в которой я могу группировать строки по данным. Я добился этого, но у меня есть небольшая проблема:

Предположим, я показываю 10 строк на странице. Если строки с 8 по 12 принадлежат к одной и той же группе, появится группа с 8 по 10, а с другой - с 11 до 12.

Как я могу сделать так, чтобы строки на следующей странице, содержащиеся в группе на предыдущей странице, не были сгруппированы в другую группу?

$(".salesTable").DataTable({
     "ajax": "ajax/salesTable.ajax.php",
     "deferRender": true,
     "retrieve": true,
     "processing": true,
     //"displayLength": 100,
     drawCallback: function ( settings ) {

         var api = this.api();
         var rows = api.rows( {page:'current'} ).nodes();

         var last=null;

         var groupadmin = []; 

         api.column(3, {page:'current'} ).data().each( function ( group, i ) {

             if ( last !== group ) {

                 $(rows).eq(i).before(
                     '<tr class="group" id="'+i+'"><td colspan="12"><i class="fas fa-eye"></i>&nbsp&nbsp&nbsp<strong>Show buy of '+group+'</strong></td></tr>'
                 );
                 groupadmin.push(i);
                 last = group;
             }
         } );

         for( var k=0; k < groupadmin.length; k++){
         //Code added for adding class to sibling elements as "group_<id>"  
               $("#"+groupadmin[k]).nextUntil("#"+groupadmin[k+1]).addClass('group_'+groupadmin[k]); 
               $("#"+groupadmin[k]).nextUntil("#"+groupadmin[k+1]).addClass('hiddenRow');                
               //Code added for adding Toggle functionality for each group
                 $("#"+groupadmin[k]).click(function(){
                     var gid = $(this).attr("id");
                      $(".group_"+gid).slideToggle(300);
                 });

         }

     } 

});
...