3

我有一个数据表。我想在对数据表的列进行排序时触发一个事件。这是我的代码。

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 */});

在绑定函数中,我想要排序列的名称。任何人都可以帮我找到这个吗?

4

2 回答 2

2

排序事件有两个参数。事件和数据表本身。使用 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;
});
于 2014-04-16T15:48:29.157 回答
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 );
} );

因此,基本上,您必须将侦听器绑定到此事件,并且您将获得列的索引。那你就得查一下它的名字了。

于 2013-05-31T15:11:17.160 回答