【问题标题】:DataTables: Entries displaying do not work数据表:显示的条目不起作用
【发布时间】:2017-09-21 14:05:11
【问题描述】:

我正在使用 DataTables 1.19 进行分页,主要是为了优化包含超过 2000 条记录的表。

一切正常,唯一的问题是 DataTables 说:“显示 2,001 个条目中的 1 到 10 个”

当实际每页显示超过 500 个时,这里是 screenshot

代码:

Jquery 数据表:

    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 响应的简要预览。

我很欣赏每一条评论。谢谢!

【问题讨论】:

  • 您已启用 bServerSide: true。因此,您的服务器端可能会为 iTotalRecords 和 iTotalDisplayRecords 返回错误的数字。

标签: jquery laravel datatables


【解决方案1】:

您是否尝试过设置页面长度?

"iDisplayLength": 50

我知道默认值应该是 10,但试一试...

我看到您正在使用服务器端处理...也许 php 文件的答案在其格式上有一些错误。如果可以,请粘贴答案(不需要所有行,只需要开头和结尾)。

【讨论】:

    【解决方案2】:

    我刚刚修好了。问题是,为了使用数据创建 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();
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多