执行搜索后清除静态过滤器数据 - yadcf 插件

static filter data is cleared after a search is performed - yadcf plugin

我正在尝试使用 yadcf 插件设置 true/false 过滤器。据我所知,在您执行搜索之前,它工作正常并且过滤工作正常。此时 select 列表不再呈现(即使清除过滤器也不会将其恢复)并且需要刷新页面才能将其恢复。

下面是一些有助于说明问题的屏幕截图。

这是在执行搜索之前

这是在执行搜索之后

这是 datatable/yadcf 初始化程序(为简洁起见,我删除了一些代码)。

_grid.init({
loadingMessage: 'Loading...',
src: _connectionsTable,
dataTable: {
    ajax: {
        url: _connectionsTable.data('url')
    },
    columns: [
        {
            data: 'IsAssigned',
            sortable: false,
            "render": function (data, type, full, meta) {
                return (data === false
                    ? '<span class="label label-sm label-danger"> No </span>'
                    : '<span class="label label-sm label-success"> Yes </span>');
            }

        }
    ],
    dom:
        "<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>",
    initComplete: function (settings, json) {
        var _table = new $.fn.dataTable.Api(settings);

        // search options
        yadcf.init(_table, [
            {
                column_number: 11,
                data: [{ value: 'true', label: 'Yes' }, { value: 'false', label: 'No' }],
                filter_container_id: 'IsAssignedFilter',
                filter_reset_button_text: false,
                style_class: 'form-control form-filter input-sm'
            }
        ]);
    },
    order: [
        [1, 'desc']
    ],
    responsive: true,
    stateSave: true
}
});

其他类型的搜索似乎工作正常,但这是我提供的第一个静态数据。此外 Chrome 开发工具在发生这种情况时不会显示任何错误。 感谢您的帮助!

你不应该在 initComplete 中初始化 yadcf,而是在你初始化数据表之后再做,像这样:

var oTable = $('#example').DataTable({...});
yadcf.init(oTable, [{column_number: 0}]);