datatables列标题反映用于排序的值

时间:2012-03-02 05:27:35

标签: datatables

我设置了datatables大约10列,其中两列在点击列标题时进行自定义过滤。

我想更改列标题以反映当前处于活动状态的过滤器。

要做到这一点,我想我需要设置fnDrawCallback并查看table.fnSettings()返回的值

我目前的代码,修剪了这个问题的基本要点:

var table = $('#units').dataTable({
    "aaSorting": (popSearch) ? [[8,"asc"]] : [],
    "aoColumns":[{ "bSortable": false },
                { "bSortable": false },
        { "asSorting": [ "", "on", "off", "occ", "none" ] },
                null,
                null,
        { "asSorting": [ "", "revised", "new" ] },
                null,
                null,
                { "bSortable": false },
                { "bSortable": false }
                ],
    "oSearch": {"sSearch": searchString},
    "sAjaxSource": "/system/units/data.php?1.4.3"
    },
    "fnDrawCallback": function() {
            /* tweak column headers according to the asSorting value */
    }
});

asSorting数组中的aoColumns数组显示了可应用于输入数据表的数据的不同过滤器列表。如果单击第三列标题(Status),我希望其文本与发送的数据相匹配(如果发送空字符串,则返回“status”)。过滤效果很好;我只想让标题反映应用的过滤器。

在Datatables fnDrawCallback函数中,我如何知道为列排序发送了什么值?

1 个答案:

答案 0 :(得分:1)

要启用对哪个列进行排序,并在视觉上看到它,您应该做的就是添加

"bSortClasses": true,

到您的数据表脚本。如:

"aaSorting": (popSearch) ? [[8,"asc"]] : [],
"bSortClasses": true,
...

您应该看到哪个列被用作分拣机。 :)