简体   繁体   中英

jQuery DataTables sorting is not working

Using jQuery 2.1.3 and DataTables 1.10.5, my table won't sort when I click on the up- and down-arrows above the columns. From what I can tell from the documentation, this is the simplest example, and should work. I can't seem to figure out why it isn't.

My HTML/JavaScript

<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

        <title>Simple Example</title>

        <link rel="stylesheet" media="screen" href="/assets/css/bootstrap.min.css">
        <link rel="stylesheet" media="screen" href="/assets/css/bootstrap-theme.min.css">
        <link rel="stylesheet" media="screen" href="/assets/css/jquery.dataTables.css">
    </head>
    <body>
        <table id="table-guid" class="display compact" cellspacing="0" width="100%">
            <thead>
                <tr>
                    <th>Column-1</th>
                    <th>Column-2</th>
                    <th>Column-3</th>
                </tr>
            </thead>

            <tfoot>
                <tr>
                    <th>Column-1</th>
                    <th>Column-2</th>
                    <th>Column-3</th>
                </tr>
            </tfoot>
            <tbody>
                <tr id="A">
                    <td>A-1</td>
                    <td>A-2</td>
                    <td>A-3</td>
                </tr>
                <tr id="B">
                    <td>B-1</td>
                    <td>B-2</td>
                    <td>B-3</td>
                </tr>
                <tr id="C">
                    <td>C-1</td>
                    <td>C-2</td>
                    <td>C-3</td>
                </tr>
            </tbody>
        </table>

        <script src="/assets/js/jquery-2.1.3.min.js"></script>
        <script src="/assets/js/bootstrap.min.js"></script>
        <script src="/assets/js/jquery.dataTables.min.js"></script>
        <script>
        $(document).ready(function ()
        {
            var table = $('#table-guid').DataTable();
        });
        </script>
    </body>
</html>

You have to define the type of your column data. The problem here is coming from the hyphen it seems, it is working without it

Solution : JsFiddle

$('#table-guid').dataTable( {
    "columnDefs": [
        { "type": "numeric-comma", targets: "_all" }
    ]
});

Here is the documentation

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM