如何在数据表的下拉列过滤中添加自定义选项

时间:2019-11-30 09:29:14

标签: jquery datatables

我有一个jQuery数据表,并且在此数据表中添加了一个下拉列过滤。在此过滤器选项中,它仅显示此页面上存在的那些选项。由于此列的最大值可能有两个不同的值。因此,我不想显示该页面上的全部选项,而是要显示自定义选项。

我当前的代码如下:

let company_id = '<?php echo $company->id; ?>';
var table = $('#companyUsersDatatable').DataTable({
    "processing": true,
    "serverSide": true,
    "ajax": {
        "url":base_path +'/admin/company/'+company_id+'/users/list',
        "dataType":"json",
        "type":"POST",
        "data":{"_token":csrf_token}
    },
    "initComplete": function () {
        this.api().columns([3]).every( function () {
            var column = this;
            var select = $('<select class="form-control"><option value="1">Admin</option><option value="2">User</option></select>')
                .appendTo( $(column.footer()).empty() )
                .on( 'change', function () {
                    var val = $(this).val();
                    column.search( this.value ).draw();
                } );

            // Only contains the *visible* options from the first page
            // console.log(column.data().unique());

            // If I add extra data in my JSON, how do I access it here besides column.data?
            column.data().unique().sort().each( function ( d, j ) {
                select.append( '<option value="'+d+'">'+d+'</option>' )
            } );
        } );
    },
    "columnDefs": [
        {
            'targets': 0,
            'checkboxes': {
                'selectRow': true
            }
        }
    ],
    "select": {
        'style': 'multi'
    },
    "columns":[
        {"data":"id"},
        {"data":"name"},
        {"data":"email"},
        {"data":"company_role"},
        {"data":"created_at"},
        {"data":"action","searchable":false,"orderable":false}
    ],
    "deferRender": true,
    "pagingType": "simple",
    "searchable": false,
    // "bFilter": false,
    // "searching": true,
    // "ordering": false,
    "order": [[ 3, "desc" ]],
    "dom": "lrtip",
    "language": {
        "emptyTable": " "
    }
});

但是,此代码不仅显示Adminusers的两个所需选项,还显示company_role列的值中的其他选项。

我需要仅显示adminuser的两个下拉选项。

0 个答案:

没有答案