我有一个dataTable。我想在dataTable的列被排序时触发事件。 这是我的代码。
var productTable = $('#example').dataTable({
"bFilter": true,
"bJQueryUI": true,
"bSort": true,
"bLengthChange": true,
"iDisplayLength": -1,
"aLengthMenu": [[-1, 25, 50, 100], ["All", 25, 50, 100]],
"sPaginationType": "full_numbers",
"bPaginate": true
});
$('#example').bind('sort', function () { /* Here I want to get the value of the sorted coumn */});
在bind函数中,我想要已排序列的名称。任何人都可以帮我找到这个吗?
答案 0 :(得分:2)
sort事件有两个参数。事件和数据表本身。使用datatable参数,您可以读取当前的aaSorting字段,并确定列排序的索引和列排序的方向。使用列排序的索引,您可以查找列并使用数据表aoColumns字段获取要排序的列的名称。
.bind('sort', function (e, dt) {
var direction = dt.aaSorting[0][1];
var columnIndex = dt.aaSorting[0][0];
var columnName = dt.aoColumns[columnIndex].sTitle;
});
答案 1 :(得分:1)
引用DataTable的API参考:
fnSortListener将排序侦听器附加到给定列的元素
输入参数:
{node}: the element to attach the sort listener to
{int}: the column that a click on this node will sort on
{function}: callback function when sort is run
返回参数:
$(document).ready(function() {
var oTable = $('#example').dataTable();
// Sort on column 1, when 'sorter' is clicked on
oTable.fnSortListener( document.getElementById('sorter'), 1 );
} );
因此,基本上,您必须将侦听器绑定到此事件,并且您将获得列的索引。然后你必须看看它的名字。