jQuery DataTables过滤作为数组的单元格数据

时间:2014-02-26 19:09:35

标签: jquery datatables

我的表格正确呈现,但我正在努力如何过滤特定列/行的值。

以下是列定义:

{
    'aTargets': [9],
    'bSortable': true,
    'bVisible': true,
    'mData': 'partlist',
    'mRender': function(data, type, row) {
        $.each(data, function(key, val) {
            if ($.inArray(val.name, partArray) === -1) {
                partArray.push(val.name);
             }
         });
         return partArray;
     }
 }

这很有效。在我的表格中,我得到了一系列类似于以下内容的零件编号:     

[123,456,789...]

我有一个下拉列表,其中还包含部件号列表。当用户选择任何给定的部件号时,我想过滤包含该部件号的行。当然,其他数字将在行中,我只对该行包含所选部件号感兴趣。

以下是我当前的过滤器设置:

$.fn.dataTableExt.afnFiltering.push(
function(oSettings, aData, iDataIndex) {
    if ($('#showHideByPartNumber').val() === "" || $('#showHideByPartNumber').val() === 'undefined')
    {
        return true;
    }
    else
    {
         console.log(typeof (aData[9])); // Returns Object
         console.log(aData[9]); // Returns ["123", "456", "789", "987", "654", "321"]
                                //         ["123", "456", "789", "987", "654", "321"]
                                //         ["123", "456", "789", "987", "654", "321"]
     }

} );

我从aData获取每行的所有部件号。假设我有3行,我会得到:     

    [123, 456, 789, 987, 654, 321]
    [123, 456, 789, 987, 654, 321]
    [123, 456, 789, 987, 654, 321]
    
这意味着过滤将返回每行的匹配项。 实际上,我试图进入aData的结果:     
    [123, 456]
    [789]
    [987,654,321]
    
(这是我的表正确显示的内容),以便我可以正确过滤行。

感谢您提出任何建议,感谢您的光临。

0 个答案:

没有答案