2014-07-17 27 views
0

我想获取当前页面,并返回当前页面的日期,我的更新是针对ajax的。dataTable - 如何正确设置页面启动?

其实我可以通过网页可变让我的网页,并通知启动该网页“oTable.fnPageChange(1);

然而,当我用“oTable.fnPageChange(1);”开始页上的我说,但不显示在“too much recursion”分页和错误控制台

例子:

<script type="text/javascript"> 
jQuery(document).ready(function(){ 
    var page = 0; 
    jQuery('#htmlgrid').dataTable({ 
     "fnDrawCallback": function(oSettings) { 

       var oTable = jQuery('#htmlgrid').dataTable(); 
       var totalRows = oTable.fnGetData().length; 


       oTable.fnPageChange(1); 
       page = Math.ceil(oSettings._iDisplayStart/oSettings._iDisplayLength);          
     }  
    }); 
}); 
</script> 

我该如何解决这个问题或什么是正确的方法是什么?

注:我使用的版本1.11.1 jQuery的

回答

1

它确实发生too much recursion,该问题是由于drawCallback被称为每次它正在改变页面,换句话说,每次页面的变化会进入在功能上隐含着新的页面变化,所以需要无限重新绘制。

docs

drawCallback: 
Function that is called every time DataTables performs a draw. 

而不是使用drawCallback的,我们需要使用initComplete回调,这将调用该函数只有一次:

var page = 0; 
$('#example').dataTable({ 
    "initComplete": function (oSettings) { //changed line 

     var oTable = this; 
     var totalRows = oTable.fnGetData().length; 


     oTable.fnPageChange(1); 
     page = Math.ceil(oSettings._iDisplayStart/oSettings._iDisplayLength); 
    } 
}); 

FIDDLE使用示例表http://jsfiddle.net/6U6ps/

+0

感谢您的帮助,它的工作原理,但只刷新页面,我把测试一个nd警报此警报只适用于在ajax呼叫警报工作之后刷新页面ai n不会更改我想要的页面=( – Dexxtz

+0

您是否有用于更改页面的按钮?你需要更好地解释什么是需要的,因为它是目前编写我们无法知道要求 –

+0

我有2个按钮更新和搜索天,当从一个帖子通过ajax单击另一个页面,返回该表中的json数据它是remotando 在这种情况下,我只是使用升级后升级返回相同的页面 – Dexxtz