我一定做错了什么,但我的代码非常基本,几乎没有偏离他们在网络上的示例。
我正在使用服务器端分页,我所遇到的是,在立即页面加载时,它会从服务器提取数据并渲染表格。然而,分页或更改页面上的记录数确实会进行 AJAX 调用,但无法实际处理。
如果我更改 jquery.dataTables.js (v 1.8.2) 的第 3562 行,问题就会消失。
if ( false )//json.sEcho*1 < oSettings.iDraw )
该行的一些上下文:
function _fnAjaxUpdateDraw ( oSettings, json )
{
if ( typeof json.sEcho != 'undefined' )
{
/* Protect against old returns over-writing a new one. Possible when you get
* very fast interaction, and later queires are completed much faster
*/
if ( false )//json.sEcho*1 < oSettings.iDraw )
只是为了演示我的设置是多么简单:
<script type="text/javascript">
$(function(){
$('#recTable').dataTable({
"bProcessing":true,
"bServerSide": true,
"sAjaxSource": "/recordings/partPageCallRecordings/",
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"aoColumns": [
{ "bSortable": false },
null,
null,
null,
{ "bSortable": false }
]
});
});
</script>
和 HTML:
<table id='recTable' class='vmTable' >
<thead>
<tr class='vmHeader'>
<th><input id='selectAll' type='checkbox'></input></th>
<th class='sortHead'>Date</th>
<th class='sortHead'>File Name</th>
<th class='sortHead'>Type</th>
<th class='sortHead'>Playback</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
最佳答案
看起来您正在将 sEcho 数据返回给客户端,因为它已经通过了第一个 if block 。您是否在服务器端以任何方式编辑它?您是否尝试过在该行的 firebug 中放置一个断点来查看 sEcho 返回的内容?我基本上是说这个请求是一个旧请求,由 sEcho 值与最新的 iDraw 整数相比表示。
在没有看到你的 json 响应是什么样子的情况下,我只能猜测。但我的猜测是 sEcho 变量在服务器端没有正确设置。
关于javascript - Datatables 不处理页面更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7588527/