如何使用服务器端选项在列上添加过滤器

时间:2019-01-14 17:28:44

标签: javascript datatables

我在脚本的列上有数据表和过滤器,当按正文(DOM)生成表时,它的工作原理很好,但又很麻烦。当我想通过ajax(服务器端选项)生成表时,它不起作用。如何在列上使用服务器端和过滤器?我需要提示如何从选择过滤器通过ajax获取查询。

       initComplete: function () {
        this.api().columns('.select-filter').every( function () {
            var column = this;
            var name = column.header().innerHTML;
            var col = $('<div class=\"filters\"></div>').appendTo(  \".filters-group\" );
            var select = $('<select class=\'form-control select2\'><option value=\"\">Wszystko</option></select>')
                .on( 'change', function () {
                    var val = $.fn.dataTable.util.escapeRegex(
                        $(this).val()
                    );

                    column
                        .search( val ? '^'+val+'$' : '', true, false )
                        .draw();
                } );

            column
            .data()
            .unique()
            .sort()
            .each(function(d, j) {
              var val = $.fn.dataTable.util.escapeRegex(d);
              if (column.search() === \"^\" + val + \"$\") {
                select.append(
                  '<option value=\"' + d + '\" selected=\"selected\">' + d + \"</option>\"
                );
              } else {
                select.append('<option value=\"' + d + '\">' + d + \"</option>\");
              }
            });
            var label = $('<label class=\'filters-label\'>'+name+'</label>');
            var form = $('<div class=\'form-group\'></div>');
            col.append(form);
            form.append(label);
            form.append(select);
        } );
    },

0 个答案:

没有答案