2014-01-10 29 views
2

我想在点击数据表的最后一页时使隐藏行可见。我该如何做?我无法找到获取当前页码和Jquery Datatable分页最后一页的方法。在分页的jQuery数据表的最后一页显示一行

这是我想要做的,但我没有任何想法如何获取当前页面和最后一页。

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

看起来很有趣,但我们希望看到代码出现问题。 – Jai

+0

这就是我想要做的,但我没有任何想法如何获取当前页面和最后一页。如果(.......){//如果点击页码=最后一页 $(“#hidden_​​row”).show(); $(“#paginate_button”).click(function(){ if else $(“#hidden_​​row”).hide(); }); –

回答

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:

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

    } 
}); 
+0

谢谢,这是我需要的。我使用fnDrawCallback函数代替if条件的.click()函数。 –

+0

gr8!但是如果你使用'fnDrawCallback',你会得到很多不安全的调用函数?这是一个小细节。您不必每次都在“后退”或过滤时进行评估。 – davidkonrad

+0

我禁用了过滤功能,并且我还需要在页面上的条目数量从10变为100时执行检查,例如在某些情况下会导致所有条目显示在单个页面上。在此情况下方案,分页按钮不会被点击。 –

1

我也有类似的问题,即得为我工作。但是,我不得不把这种方式(脚本必须前DataTable中加载):

$.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(); 
     } 
    } 
    }); 
}); 

*我希望把它作为其他答案评论,但我没有足够多的声誉。

相关问题