Флажки выбора триггера Jquery, в которых строки в скрытом столбце соответствуют списку - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть таблица из> 400 пунктов, из которых мои пользователи могут выбирать. Существует несколько наборов из примерно 200 предметов, которые довольно часто выбираются вместе в зависимости от пользователя. Поэтому я хочу сделать несколько кнопок, которые автоматически выбирают большую часть этих элементов для пользователя.

В этом случае я хочу, чтобы кнопка выбора библиотеки по умолчанию инициировала выбор строк с ID 4, 7 и 8.

Я добавил скрытую строку идентификатора, но я не уверен, как вызвать функцию выбора для списка идентификаторов.

Скрипка: https://jsfiddle.net/crashvector/b9r0Lpvg/2/

Код запроса:

$(document).ready( function () {    
var srcData = [
    {
        "ID": "1",
        "Name": "01_p11017",
        "Region": "GoM",
        "Class": "unknown",
        "Category": "unknown",
        "QC_flag": "0",
        "QC_comment": "\r"
    },
    {
        "ID": "2",
        "Name": "02_p21017",
        "Region": "GoM",
        "Class": "unknown",
        "Category": "unknown",
        "QC_flag": "0",
        "QC_comment": "\r"
    },
    {
        "ID": "3",
        "Name": "03_p31017",
        "Region": "GoM",
        "Class": "unknown",
        "Category": "unknown",
        "QC_flag": "0",
        "QC_comment": "\r"
    },
    {
        "ID": "4",
        "Name": "04_p41017",
        "Region": "GoM",
        "Class": "unknown",
        "Category": "unknown",
        "QC_flag": "0",
        "QC_comment": "\r"
    },
    {
        "ID": "5",
        "Name": "05_p11117",
        "Region": "GoM",
        "Class": "unknown",
        "Category": "unknown",
        "QC_flag": "0",
        "QC_comment": "\r"
    },
    {
        "ID": "6",
        "Name": "06_p21117",
        "Region": "GoM",
        "Class": "unknown",
        "Category": "unknown",
        "QC_flag": "0",
        "QC_comment": "\r"
    },
    {
        "ID": "7",
        "Name": "07_p31117",
        "Region": "GoM",
        "Class": "unknown",
        "Category": "unknown",
        "QC_flag": "0",
        "QC_comment": "\r"
    },
    {
        "ID": "8",
        "Name": "08_p41117",
        "Region": "GoM",
        "Class": "unknown",
        "Category": "unknown",
        "QC_flag": "0",
        "QC_comment": "\r"
    }];
  var table = $('#samples').DataTable( { 
    "processing": true,
    "serverSide": false,
    "pageLength": -1,
    "lengthMenu": [[100, 250, 500, -1], [100, 250, 500, "All"]],
data: srcData,    
    columns: [
      {
        data: '',
        defaultContent: '0',
        visible: false
      },
      {
        data: '',
        defaultContent: '',
        orderable: false,
        className: 'select-checkbox',
        targets: 1,
        orderData: [0]
      },
      {
        title: 'ID',
        'className': 'dt-left',
        'visible': false,
        data: 'ID'
      },
      {
        title: 'Name',
        'className': 'dt-left',
        data: 'Name'
      },
      {
        title: 'Region/Program',
        'className': 'dt-left',
        data: 'Region'
      },
      {
        title: 'Class',
        'className': 'dt-left',
        data: 'Class'
      },
      {
        title: 'Category',
        'className': 'dt-left',
        data: 'Category'
      },
      {
        title: 'QC Concerns',
        'className': 'dt-left',
        data: 'QC_comment'
      }
    ],
    select: {
        style:    'multi',
        },
    order: ([[ 4, 'asc' ], [ 5, 'asc' ], [ 3, 'asc' ]]),
    orderFixed: [0, 'desc'],
    dom: 'Bfrtip',
    buttons: [
     {
            extend: 'csv',
            fieldBoundary: '',
            text: '<span class="fa fa-file-excel-o"></span> Download (ALL) or (SELECTED)',
            exportOptions: {
                columns: [ 5, 2 ],
                modifier: {
                    search: 'applied',
                    order: 'applied'
                }
            }
        },
{
      text: 'Select Default Library 1',
      action: function (e, dt, node, conf) {
        alert('This button will automatically check all rows that match predefined list 1 using the hidden ID column. (IE ID 4, 7, 8)');
      }
    }

     ]
  } );

  table.on( 'select', function ( e, dt, type, indexes ) {
    if ( type === 'row' ) {
        var row = table.row( dt );
        table.cell({ row: row.index(), column: 0 } ).data( '1' );
        table.draw();
    }
  });

  table.on( 'deselect', function ( e, dt, type, indexes ) {
    if ( type === 'row' ) {
        var row = table.row( dt );
        table.cell({ row: row.index(), column: 0 } ).data( '0' );
        table.draw();
    }
  });


} );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...