首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让columnFilter插件与DataTables一起工作

问让columnFilter插件与DataTables一起工作
EN

Stack Overflow用户
提问于 2014-12-18 09:42:38
回答 1查看 5.9K关注 0票数 2

我使用的是1.10.2 DataTables,我想利用columnFilter插件,而不是手工拼凑一些东西。我使用的是带有数据的引导呈现器,jQuery 1.10.2、jQuery UI 1.10.3和引导3.1.1。这个特定的表不使用任何花哨的东西(没有固定的头,没有固定的列,没有ColVis或ColReorder)。分页打开。

代码语言:javascript
复制
<link rel="stylesheet" type="text/css" href="~/CSS/dataTables.bootstrap.css" />
<!-- stuff -->
<table id="reportTable" class="table table-condensed table-striped table-bordered">
    <thead>
    </thead>
    <tbody>
    </tbody>
</table>
<!-- stuff -->
<script type='text/javascript' src='~/Scripts/jquery.dataTables.js'></script>
<script type='text/javascript' src='~/Scripts/dataTables.bootstrap.js'></script>
<script type="text/javascript" src="~/Scripts/jquery.dataTables.columnFilter.js"></script>

JavaScript:

代码语言:javascript
复制
vm.table = $('#reportTable').DataTable({
    dom: 'rtipfl',
    autoWidth: false,
    info: true,
    lengthChange: true,
    lengthMenu: [ 10, 15, 20 ],
    displayLength: 10,
    pageLength: 10,
    ordering: true,
    orderMulti: true,
    orderClasses: true,
    order: [[ 2, "asc" ]],
    paging: true,
    pagingType: "full_numbers",
    renderer: "bootstrap",
    deferRender: true,
    processing: true,
    scrollX: false,
    scrollY: false,
    scrollCollapse: false,
    searching: true,
    columns: vm.columns,
    columnDefs: vm.columnDefs,
    data: vm.postingArray,
    initComplete: function (settings, json) {
        vm.attachTableEventHandlers();
    }
});

这是一个有22列的表。首先,我注意到columnFilter示例只提到DataTables的小写初始化,例如:

代码语言:javascript
复制
$('#blabla').dataTable().columnFilter();

如果我说

代码语言:javascript
复制
vm.table = $('#reportTable').DataTable({
     ...
}).columnFilter();

我变胖了

代码语言:javascript
复制
"TypeError: $(...).DataTable(...).columnFilter is not a function
 vm.table = $('#reportTable').DataTable({"

如果我说

代码语言:javascript
复制
vm.table = $('#reportTable').DataTable({
     ...
});
$('#reportTable').columnFilter();

"TypeError: oTable.fnSettings is not a function
if (!oTable.fnSettings().oFeatures.bFilter)"

如果我说

代码语言:javascript
复制
vm.table = $('#reportTable').DataTable({
     ...
});
$('#reportTable').dataTable().columnFilter();

没有过滤器出现。

我做错了什么?我应该如何初始化它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-18 10:48:03

我不认为您可以使用新的"D“数据库api应用columnFilter,因为与返回jQuery对象的.dataTable()调用不同,新的.DataTable调用返回table对象。

您可以修补columnFilter以支持新的"D“api

或

使用my 用于数据的yadcf插件向列添加筛选器

请注意,yadcf支持datatable的旧api和新api,它有10种diff类型的过滤器和大量其他好东西:)

关于github的yadcf

yadcf橱窗

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27543442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档