YADCF MULTI_SELECT与服务器端进行过滤(YADCF multi_select fil

2019-11-03 14:08发布

与AngularJS的工作,我有一个DataTable()在服务器端模式下工作,使用YADCF过滤器。 是否有可能使用multi_select过滤器(蒙山选择或选择2)在服务器端工作时? 我可以手动介绍搜索的参数? 在这种情况下我想使用该过滤器上的柱#6(“国家体制”),这意味着下面的一个进程的“状态”。

从代码myApp.controller

var table = $('#tbl').DataTable({
        stateSave: true,
        stateDuration: -1,
        //sRowSelect: "multi",
        language: sharedProperties.getLanguageDatatable(),
        dom: '<"toolbar">T<"clear">lfrtip',            
        "columnDefs": [
            { "data": "processosId", "targets": 0, "visible": false, "searchable": false },
            { "data": "utilizadoresId", "targets": 1, "visible": false, "searchable": false },
            { "data": "entidadesId", "targets": 2, "visible": false, "searchable": false },
            { "data": "numero", "targets": 3 },
            { "data": "nomeEntidade", "targets": 4, "visible":entidadeCol },
            { "data": "nomeUtilizador", "targets": 5, "visible":utilizadorCol },
            { "data": "estado", "targets": 6 },                
        ],
        serverSide: true,
        ajax: {
            "url": urlProcessos,
            "error": function (reason) {
                if (reason.status == 401) { // Not Authorized
                    self.location = '#/logout';
                }
            }
        },
});

    yadcf.init(table,
    [
        { column_number: 3, filter_type: 'text', filter_default_label: "" },
        { column_number: 4, filter_type: 'text', filter_default_label: "" },
        { column_number: 5, filter_type: 'text', filter_default_label: "" },
        { column_number: 6, filter_type: 'multi_select', filter_default_label: "", select_type:'chosen' },            
    ]);

    $scope.newProcess = function () {            
        table.columns(6).search('Novo').draw();

    }

    $scope.openProcess = function () {
        table.columns(6).search('Aberto').draw();
    }

当我筛选的第一次,因为它的服务器端只访问与状态proccess,所以这是不可能选择一个或多个国家...

Answer 1:

如果要触发yadcf过滤您更好地使用yadcf API

我建议你更换

table.columns(6).search('Novo').draw();

table.columns(6).search('Aberto').draw();

像这样的东西

yadcf.exFilterColumn(oTable, [[0, ['Novo']]], true);

yadcf.exFilterColumn(oTable, [[0, ['Aberto']]], true);

在要过滤多个值的情况下,您可以添加更多的阵列,像这样

yadcf.exFilterColumn(oTable, [[0, ['Novo', 'Aberto']]], true);

阅读更多关于exFilterColumn API

注意,第三true参数时,应使用过滤上午AJAX源这是已经被加载(无文档对于尚未)数据表



文章来源: YADCF multi_select filter with server side