我正在使用
jQuery DataTable插件,当数据通过AJAX加载时,无法找到使其滚动到表格底部的方法.
所以我的页面的基本布局上有两个3 jQuery DataTables.从我通过检查呈现的代码看到的是插件将创建一个id为“myTableid_wrapper”的div包装器,其中有两个子节点和表格.
现在,如果表触发了滚动功能,那么表将再次被包装在另一个具有溢出的div:hidden中,以便可以滚动表.
该div的类名为“dataTables_scrollBody”.以下是未触发滚动功能的表的示例.
<div id="myTable1_wrapper" class="dataTables_wrapper" > <div id="case_activity_table_filter">no worried about this guy</div> <table id="myTable1" >does not matter whats in here</table> </div>
以下是触发插件滚动功能的表的一般布局.正如您所看到的那样,插件会自动生成类“dataTables_scrollBody”的div.
<div id="myTable2_wrapper" class="dataTables_wrapper" > <div id="case_activity_table_filter">no worried about this guy</div> <div class="dataTables_scrollBody" style="overflow:hidden" > <table id="myTable2" >does not matter whats in here</table> </div> </div>
这两个表都位于同一页面上.这两个表都可能有也可能没有滚动div.
有没有办法定位类“dataTables_scrollBody”并在通过AJAX创建表时滚动到底?
解决方法
假设你像这样初始化了数据表:
var oTable = jQuery('#myTable1').dataTable({ "bProcessing": true,"bPaginate": false,"sScrollY": "200","bScrollCollapse": true });
你可以这样做:
oTable.parent().scrollTop(9999);
如果你有更多的数据,你可以增加滚动的数量,或者可能有办法找出包括溢出部分的表的高度.
使用ajax,您可能必须将scrollTop代码放在“fnInitComplete”回调函数中,因此它在呈现表后执行.
…
另一个想法:也许您可以通过aaSorting来反转行的顺序,然后您不必进行任何滚动.