【问题标题】:DataTables not displaying content for a simple exampleDataTables 不显示一个简单示例的内容
【发布时间】:2019-03-05 20:43:17
【问题描述】:

这是成功的 Web 服务调用返回的 JSON。

{"items":[{"version_no":"7.6.5.4"}]}

这是我的 javascript / HTML。当我加载页面时,它会正确显示页眉和页脚,并调用 Web 服务。但它不显示 JSON 中包含的版本号。

<!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">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <title>Page 1</title>

    <link rel="stylesheet" type="text/css" href="lib/bootstrap.css">
    <link rel="stylesheet" type="text/css" href="lib/dataTables.bootstrap4.min.css">
    <style type="text/css" class="init">

    </style>
    <script type="text/javascript" language="javascript" src="lib/jquery-3.3.1.js"></script>
    <script type="text/javascript" language="javascript" src="lib/jquery.dataTables.min.js"></script>
    <script type="text/javascript" language="javascript" src="lib/dataTables.bootstrap4.min.js"></script>
    <script type="text/javascript" class="init">

$(document).ready(function() {

   $('#example').DataTable( {
      "ajax": {
         cache: true,
         url: "https://<hostname>/get_version/",
         type: "GET"
      },
      "columns": [
         { "data" : "items.version_no" }
    ]
   } );
} );
    </script>

  </head>
  <body>
<p>
<table id="example" class="table table-striped table-bordered" style="width:"75%">
    <thead>
        <tr>
            <th>Version</th>
        </tr>            
    </thead>
    <tfoot>
        <tr>
            <th>Version</th>
        </tr>
    </tfoot>
</table>

  </body>
</html>

这是浏览器显示的内容

【问题讨论】:

    标签: javascript jquery json ajax datatables


    【解决方案1】:

    默认情况下,DataTables 期望从 AJAX 调用返回的数据以某种方式格式化(数组数组或对象数组,其中每个条目对应于表行,默认情况下,包含在属性 data/aaData 中)。

    但是,如果您需要覆盖此行为,您可以使用ajax 选项的dataSrc 属性指向您的items 属性:

    ajax: {
       ...
       dataSrc: 'items'
    }
    

    之后,您可以简单地在列定义中引用version_no

    columns: [{data:'version_no', title:'Version'}]
    

    【讨论】:

    • 非常感谢,就是这样!我不知道我需要多长时间才能弄清楚这一点,非常感谢。
    猜你喜欢
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多