JQuery DataTables分页缓存下一个按钮仅在第一页上工作

时间:2017-04-03 13:15:20

标签: jquery datatable pagination

大家早上好,

首先,我要感谢大家的时间和帮助!

我在S.O.上看过很多帖子。并且在DataTables论坛(后者,主要是在#34;遗产"版本的DataTables)中讨论这个问题并最终标记它并解决了,#34;所以我知道通常提出的解决方案。换句话说,就我所知,这不是重复的。

问题是:DataTables服务器端分页,带有客户端页面缓存,有一个" next"按钮不起作用。分页本身工作正常,缓存工作正常,来往服务器的数据很好。 "之前"按钮工作正常,并且单击页码以在表格页面之间导航在显示数据方面工作正常。

标准建议的解决方案是确保JSON响应具有在" recordsTotal"中设置的正确值。和" recordsFiltered"参数。但是,我可以确认,在我的情况下,这两个确实是相同的值,没有过滤掉任何记录。

表的初始加载显示正确的计数和数据,如第一个屏幕截图所示。

第二个屏幕截图是按钮" next"之后的表格。点击一次。请注意标签"显示533条记录中的0,101到533。"如果我此时单击上一个按钮,它将正常工作并正确显示第一页。如果我使用页面按钮导航到任何其他页面,则下一个按钮将完全停止工作,而之前的按钮将继续运行。

第三个屏幕截图说明了该表是什么"假设"看起来像,如果我只是点击页面" 2"它实际上是什么样的。在导航中。

我甚至不确定在哪里看,因为我控制的所有变量似乎都被正确设置了。它几乎看起来像JQuery / DataTables代码中的东西连接两个字符串而不是添加两个整数。我想也许这可能发生在流水线/缓存代码中,但我一直无法找到源代码,或者我可能只是不理解它是如何运算的......

缓存的设置方式使其能够保留客户端中的50条记录,一次将10条记录加载到表中。当发生对服务器的调用时," next"或"之前"每次超过阈值时都会获取50个。

如果它是相关的,我用于缓存的代码是对DataTables在https://datatables.net/examples/server_side/pipeline.html提供的示例代码的略微修改。虽然我会注意到当我在桌面上禁用缓存时,问题根本没有改变。

所以...如果有人知道我应该在哪里寻找线索或解决方案,那么我们将非常感谢您的帮助!

[![Screen1][1]][1]
[![Screen2][2]][2]
[![Screen3][3]][3]


[1]: https://i.stack.imgur.com/2pzup.png
[2]: https://i.stack.imgur.com/qykJC.png
[3]: https://i.stack.imgur.com/W2Pu6.png

编辑:很抱歉屏幕截图没有显示的方式。由于某种原因,我无法以默认呈现的方式提交它。验证一直告诉我,我的代码没有格式化为代码"在我的提交中。谢谢!

1 个答案:

答案 0 :(得分:1)

嗯,即使这是一个糟糕的表现(表演很差,表演很差),我也找到了自己问题的答案。请记住,我在第一时间问这个问题之前花了好几个小时=)......

无论如何,发生的事情是在DataTable初始化期间无法从“字符串”转换为“数字”类型(所以当我说有连接发生时我接近答案)。我的代码将“10”作为表的显示长度传递给DataTables代码。显然内部没有发生任何转换(也就是说,DataTables没有努力将参数转换为数字),这让我感到惊讶,但是首先做出这个假设仍然是我的错。

如果有更明确的解释,请随意分享=)。

谢谢大家!