yadcf 接口更改为 exFilterColumn 混乱

yadcf interface change to exFilterColumn confusion

我正在将我网站上的 yadcf 版本从 0.6.9 升级到 0.8.8。 (我也在从 datatables 1.9.4 升级到 1.10.10)

my production site and the 0.8.8 version at my sandbox site

查看 0.6.9 版本

我已将对 yadcf.exFilterColumn 的调用从两次调用更新为一次调用,因为现在默认值采用一对数组。

但是当页面加载时,我过滤的数据集是空的,我需要 select 一个性别然后点击全部以显示所有数据。

我确定我对新界面不是很满意。

更新: 简化的沙盒版本 here。请参阅文件 TestStandings.js

更新 2: Daniel 指出“-1”用于性别筛选器不起作用。显然,出于某种原因,usegender = "-1" 在 0.8.8 中的行为方式与在 0.6.9 中的行为方式不同。我可以试着弄清楚为什么它曾经有效,但这似乎没有效果。

我在 exFilterColumn 调用后添加了以下代码(在某些用例中需要过滤性别)

    // reset gender column if didn't mean to filter
    if (usegender == "-1") {
        yadcf.exResetFilters( _rrwebapp_table, [genderCol] )
    }

但这在 jquery.dataTable.yadcf.js 的第 3624 行出现异常,因为 settingsDt.aanFeatures.f 未定义

更新 3: 在数据 tables 端调试时,我将 sDom 从 '<"H"Clpr>t' 更改为默认 'lfrtip'。上面提到的异常消失了,table 正确加载。

这是您应该如何处理您的情况

要求过滤 -1 值是错误的,因为 table 中没有这样的值,因此为了在调用 exFilterColumn 之前重置特定列,您应该使用 exResetFilters with noRedraw set to true(从 0.8.9.beta.31 中获取)你应该在 之前调用此函数 你的 exFilterColumn


旧答案

我可能已经注意到为同一个 table 多次调用 exFilterColumn,而实际上您应该只调用一次,只需为 [=57] 的每一列设置所需的值=],

See showcase page (first table)

并注意下面的相关代码

yadcf.exFilterColumn(firstTable, [
    [1, {
        from: 1,
        to: 40
    }],
    [3, "a_value"]
]);

如果还是不行,请提供您的 table / yadcf 初始化代码和调用 exFilterColumn

的代码

更新:

我注意到您正在使用以下代码行

yadcf.exFilterColumn(_rrwebapp_table, [[divisionCol, usedivision], [genderCol, usegender]])

你的 usegender 设置为 "-1" 这没有意义,因为它是 Select 输入重置选项的值 ,所以请确保您在 exFilterColumn 调用中不使用 "-1" 作为值...