jquery - 使用dataTables对象

jquery - 使用dataTables对象,第1张

我正在使用最新的DataTables,但是我没有更新我的代码以使用新的API ...我仍在使用匈牙利表示法!我不介意答案是否使用新的方法和符号,但我只想构建问题的上下文。 ;)

我有可能在一个页面上有几个DataTables,每个DataTables每X秒更新一次。出于这个原因,我基本上跟踪我自己的DataTable数组,以便我可以在轮询间隔调用fnDraw。

所以,在初始化时我会做这样的事情:

pollObj[0] = $('#myTable').dataTable(options);

然后每隔X秒,表格会重新绘制一次:

pollObj[0].fnDraw(false)

问题在于,由于初始化参数被缓存,因此DataTable正在丢失其iDisplayStart的跟踪并且每次都将其设置为0。如果我在第5页时轮询间隔再次出现,它会在第1页重新绘制表格。

如何让它记住我的iDisplayStart?换句话说,如何在页面更改(绘图)之后修改pollObj[i],以便下次调用fnDraw时,新值会被使用?我找到了fnSettings方法,但似乎没有一个setter。或者只是fnSettings()._iDisplayStart = x

我注意到在fnDrawCallback中,如果我在手动选择新页面后记录oSettings,我会得到一个整数> 0(例如,当我在第5页时为40)。

我可以在fnDrawCallback中取出整个oSettings并以某种方式将其应用回缓存的pollObj[i]设置吗?

(那时棘手的部分会找到'我',但那是另一回事......)

最佳答案:

1 个答案:

答案 0 :(得分:1)

如果您正在使用旧版dataTables,那么有一个插件会进行常规重绘,这意味着保留当前页面。

http://datatables.net/plug-ins/api/fnStandingRedraw

导入插件并按如下方式使用

$(document).ready(function() {

      var table = $('.dataTable').dataTable()

      table.fnStandingRedraw();

  } );

对于DataTables 1.10及更高版本,这是draw(false)方法内置的。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
U19学习网站 » jquery - 使用dataTables对象