2012-03-02 55 views
0

我有datatables设置了约10列,其中两个在单击列标题时进行自定义筛选。datatables列标题反映用于排序的值

我想更改列标题以反映哪个筛选器当前处于活动状态。

要做到这一点,我想我会需要设置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 */ 
    } 
}); 

aoColumns数组中的asSorting数组显示可能应用于要提供给数据表的数据的不同过滤器的列表。如果单击第三列标题(Status),我希望它的文本匹配发送的数据(如果发送空字符串,则返回到“状态”)。过滤工作很好,我只想让标题反映应用的过滤器。

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

回答

1

要启用哪个列被排序,并直观地看到它,你应该做的就是添加

"bSortClasses": true, 

您的数据的表的脚本。如:

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

您应该看看哪一列正在用作分拣机。 :)

+0

我的问题可能不清楚;我不只是寻找默认的视觉指标,但我需要根据用于排序各种列的值来更改标题。我很久以前解决了这个问题,并可能在稍后发布答案。 – 2013-01-17 05:02:32