DataTables 1.10.10 - 添加每次调用的函数

时间:2016-08-04 16:13:17

标签: jquery datatables

我正在使用DataTables版本1.10.10。我知道当我在特定表上初始化数据表时,我可以在fnDrawCallback中添加一个函数,但是我有很多带有表调用的页面,需要更新它们中的每一个。

我想知道在DataTables代码中我可以放置一个新函数,它将在初始化阶段添加的任何附加函数之前自动在DrawCallback函数上运行。

有人能指出我在正确的位置吗?

1 个答案:

答案 0 :(得分:1)

我在这里看到两个选项。选项A更容易实现,但需要您在每个DataTables初始化中调用您的函数。选项B需要更少的代码(并且可能更接近你真正想做的事情),但可能会非常困难并且可能产生意想不到的后果。

选项A

您可以创建一个.js脚本文件,该文件包含在定义自定义函数的所有页面中(例如您可能已包含DataTables .js文件的方式)。然后,您需要做的就是将该函数调用放在每个fnDrawCallback选项的顶部。如你所说:

  

我有很多带有表调用的页面,需要更新它们中的每一个。

这并没有真正缓解这个问题(而且很可能你已经考虑过这个问题了,如果它没有帮助就很抱歉),但它可能会涉及更多的前瞻性工作,您可以避免选项B的一些挑战和风险。它确实意味着您不必在每个页面中重新定义自定义功能,但您仍然需要调用它。如果您真的不想这样做,请查看选项B.

选项B

您可以进入实际的jquery.dataTables.js文件并尝试覆盖fnDrawCallback函数的默认行为来调用您的函数。此选项的优点是您不必多次使用自定义功能。缺点是,如果您不想使用自定义版本,则必须在初始化时手动覆盖它。

公平的警告,我从来没有真正尝试过,所以除了指出你正确的方向,我无法提供很多帮助。

我有DT的1.10.12版本,但没有太大变化,所以希望这些信息是相关的。在我的jquery.DataTables.js版本中,fnDrawCallback函数位于第10614行(当然,您可以在文件上查找以获取您的版本的确切行)。在那里,您可以重新定义fnDrawCallback的默认行为。 (您可以从同一部分中定义的其他函数或每个函数的注释中获取一些如何执行此操作的示例。)

注意

当然,您可以从此脚本文件中覆盖DataTables中的所有内容,但这不会得到很好的支持或记录良好,因此如果您选择选项B(这似乎更符合您的要求)轻轻地踩踏。