我正在尝试将Yadcf与DataTables 1.10+一起使用。我的情况是数据表中的每一行都有一列,其中包含 4 个单选按钮。我希望能够使用 Yadcf 过滤这些数据。如果不使用自定义函数,我找不到任何方法来做到这一点。
yadcf.init(oTable, [
// { column_number: 0 },
// { column_number: 1 },
{
column_number: 2,
filter_type: "text"
},
{
column_number: 3,
filter_type: "text"
},
// { column_number: 4 },
{
column_number: 5,
filter_type: 'custom_func',
custom_func: statusFilter,
data: JSON.parse(jsonStatus)
您可以在第 5 列中看到我调用了一个名为状态过滤器的自定义函数
function statusFilter(filterVal, columnVal) {
var found;
if (columnVal === '') {
alert('here');
return true;
}
}
它正确传递了过滤器Val,但列Val为空,因此抛出我的警报并返回。
我试图稍微浏览一下代码,看到 yadcf 看到第 5 列的 aData 为空。我不知道为什么。
有没有人知道我如何做到这一点。
谢谢
我已经在 0.9.0.beta.11 中添加了增强功能,以custom_func - 第 4 个参数 - 它保存表格行的 html DOM。 请参阅 JSBin 示例并检查我如何使用它。
function myCustomFilterFunction(filterVal, columnVal, rowVal, stateVal) {
if (columnVal === '') {
return true;
}
if ($(stateVal[0]).filter(':checked').val() === filterVal) {
return true;
}
return false;
}
问题是你必须找到一种方法来更新你的 DOM 鼠标 readio 按钮选择,这样过滤器就会看到正在检查的新值 - 让我知道你最终是如何做到的 - 也许使用 jquery 或更新数据表模型