在分页的jQuery数据表的最后一页上显示一行

时间:2014-01-10 13:11:52

标签: jquery datatables jquery-datatables

我想在点击数据表的最后一页时显示一个隐藏的行。我该怎么做?我找不到获取当前页码和Jquery Datatable分页的最后页码的方法。

这就是我想要做的,但我不知道如何获取当前页面和最后一页。

$( "#paginate_button" ).click(function() {     
if(.......){  //if clicked page number= last page
$( "#hidden_row" ).show();
else
$( "#hidden_row" ).hide();
});

2 个答案:

答案 0 :(得分:1)

我有类似的问题,对我也有用。但是,我必须采用这种方式(脚本必须在数据表之前加载):

$.extend( true, $.fn.dataTable.defaults, {

  "fnDrawCallback": function () {
      var currentPage= this.fnPagingInfo().iPage;     
      if ((+currentPage + +1) == this.fnPagingInfo().iTotalPages) {
        $("#target_id").show();
      }else{
        $("#target_id").hide();
      }
    }
  });
});

*我会把它作为对另一个答案的评论,但我没有声誉。

答案 1 :(得分:0)

首先,实现众所周知的[fnPagingInfo] [1]"插件"。例如,在代码中添加以下内容:

$.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings ) {
  return {
    "iStart":         oSettings._iDisplayStart,
    "iEnd":           oSettings.fnDisplayEnd(),
    "iLength":        oSettings._iDisplayLength,
    "iTotal":         oSettings.fnRecordsTotal(),
    "iFilteredTotal": oSettings.fnRecordsDisplay(),
    "iPage":          Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ),
    "iTotalPages":    Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength )
  };
}

然后,在fnDrawCallback中应用if条件:

"fnDrawCallback": function () {
    var currentPage= this.fnPagingInfo().iPage;     
    if ((+currentPage + +1) == this.fnPagingInfo().iTotalPages) {
    $("#target_id").show();
    }else
    $("#target_id").hide();

    }
});