我正在尝试将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列看到我调用名为statusfilter的自定义函数
function statusFilter(filterVal, columnVal) {
var found;
if (columnVal === '') {
alert('here');
return true;
}
}
正确传递filterVal,但是columnVal为空,因此抛出警报并返回。
我试着仔细查看代码并看到yadcf看到第5列的aData为空。我不知道为什么。
有没有人有任何想法如何让我的工作。
谢谢,
答案 0 :(得分:0)
我已将0.9.0.beta.11的增强功能添加到custom_func - 第4个参数 - 它保存了表格行的html DOM。见jsbin sample并检查我是如何使用它的。
function myCustomFilterFunction(filterVal, columnVal, rowVal, stateVal) {
if (columnVal === '') {
return true;
}
if ($(stateVal[0]).filter(':checked').val() === filterVal) {
return true;
}
return false;
}
问题是你必须找到一种方法来更新你的鼠标readio按钮选择你的DOM,所以过滤器将看到检查的新值 - 让我知道你最终是如何做到的 - 也许使用jquery或更新数据表模型