【问题标题】:JQuery DataTables Default Sorting not workingJQuery DataTables默认排序不起作用
【发布时间】:2013-12-26 18:41:38
【问题描述】:

由于某种我无法弄清楚的原因,我的数据表默认排序不起作用。但是数据显示正确。分页也不起作用。第一列包含图像,但我将其设置为默认不执行任何排序。

非常感谢任何帮助。

这是我正在使用的部分代码:

var oTable = $('#datatables').dataTable( {
        "aaSorting": [[2, 'asc']],
        "bProcessing": true,
        "bServerSide": true,
        "sPaginationType": "full_numbers",
        "sAjaxSource": "process.php",
        "aoColumns": [
            {
                "mData": null,
                "aTargets": [0],
                "bSerchable": false,
                "bSortable": false,
                "sDefaultContent": '<div class="expand /">',
                "sWidth": "30px"
            },
            { 
                "mDataProp": "email",
                "aTargets": [1],
                "bSearchable": true,
                "bSortable": true
            },
            { 
                "mDataProp": "lastName",
                "aTargets": [2],
                "bSearchable": true,
                "bSortable": true
            },
            { 
                "mDataProp": "firstName",
                "aTargets": [3],
                "bSearchable": true,
                "bSortable": true
            },
            { 
                "mDataProp": "dateRegistered",
                "aTargets": [4],
                "sClass": "center",
                "bSearchable": true,
                "bSortable": true
            }
        ]
    } );

我刚刚添加了“aTargets”,没有它们也一样。

这是返回 json 数组的文件:

<?php

        try {
            $conn = require_once 'dbConnect.php';

            $sql = "SELECT email, lastName, firstName, dateRegistered, state FROM Users";

            $result = $conn->prepare($sql) or die ($sql);

            if(!$result->execute()) return false;

            if($result->rowCount() > 0) {
                $json = array();
                while($row = $result->fetch()){
                    $json[] = array(
                        'email' => $row['email'],
                        'lastName' => $row['lastName'],
                        'firstName' => $row['firstName'],
                        'dateRegistered' => $row['dateRegistered'],
                        'state' => $row['state']
                    );
                }

                $response = array(
                    "iTotalRecords" => strval(count($json)),
                    "iTotalDisplayRecords" => strval(count($json)),
                    "aaData" => $json
                );

                echo json_encode($response);

            }
        } catch(PDOException $e) {
            echo 'Error: ' . $e->getMessage();
        }

?>

谢谢。

【问题讨论】:

    标签: javascript php jquery sorting datatables


    【解决方案1】:

    折腾了一阵子,终于解决了。

    • 删除或注释“bServerSide”行:true,
    • 不要使用“aoColumns”,而是使用“aoColumnDefs”

    它应该可以正常工作。

    【讨论】:

    • 这并没有解决我的问题,但指向“bServerSide”帮助我记住我使用的是 ajax 源,这意味着您必须对 SQL 查询实施排序。 :) 所以 tnx,为此!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多