我使用DataTables 1.19 进行分页,主要是为了优化超过2000条记录的表格。
一切正常,唯一的问题是DataTables说:"显示2,001个条目中的1到10个"
每页实际显示的时间超过500时,此处为screenshot。
代码:
Jquery DataTables:
url = location.search;
var table = $('.data-table').dataTable({
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"sDom": '<""lri>t<"F"fp>',
"aaSorting": [],
"bServerSide": true,
"bProcessing": true,
"sAjaxSource": "/ledger/ajax"+url,
"fnServerParams": function(aoData) {
},
"fnRowCallback": function(nRow, aData, iDisplayIndex) {
// console.log(nRow);
// console.log(aData);
$('td:eq(1)', nRow).css('text-align', 'right');
$('td:eq(2)', nRow).css('text-align', 'right');
$('td:eq(3)', nRow).css('text-align', 'right');
$('td:eq(4)', nRow).css('text-align', 'right');
$('td:eq(5)', nRow).css('text-align', 'right');
$('td:eq(6)', nRow).css('text-align', 'right');
},
"oLanguage": {
"sUrl": "/js/language/" + js_lang + ".txt"
},
"bStateSave": true
});
Here是AJAX响应的简要预览。
我赞赏每一条评论。谢谢!
答案 0 :(得分:0)
您是否尝试过设置页面长度?
"iDisplayLength": 50
我知道默认值应该是10,但试一试......
我看到你正在使用服务器端处理...也许php文件的答案在格式上有一些错误。如果可以,请粘贴答案(不是所有行都需要,只是开头和结尾)。
答案 1 :(得分:0)
我刚修好了。问题是,为了用数据创建AJAX查询,我直接从数据库创建了数据集合而不是查询(我没有使用Datatable :: query($ data))所以我的AJAX响应语法是错。
我必须这样做来修复AJAX响应的结构:
public function getAjax()
{
$inputs = Input::only(['period','date_start', 'date_end', 'grupoContable']);
$inputs = array_filter($inputs);
$results = $this->calculateAsientos($inputs);
$collection = new \Illuminate\Database\Eloquent\Collection;
foreach($results as $result) {
$collection->add($result);
}
return Datatable::collection($collection)
->showColumns( 'fecha', 'comentarios', 'line_cargo', 'line_abono', 'nombreCuentaContable', 'cuentaContable')
->searchColumns( 'fecha', 'comentarios', 'line_cargo', 'line_abono', 'nombreCuentaContable', 'cuentaContable')
->orderColumns( 'fecha', 'cuentaContable', 'nombreCuentaContable', 'comentarios', 'line_cargo', 'line_abono')
->make();
}