【问题标题】:Datatables.js: How to read in JSONDatatables.js:如何读取 JSON
【发布时间】:2016-11-17 17:15:43
【问题描述】:

所以我一直在搞乱 Datatables.js,但我似乎无法用结果填充它。所以我有一个返回以下 JSON 的 Java servlet:

[{"fileName":"report (1).xlsx","fileSize":"82 KB","fileDate":"07/13/2016 15:19:43"},{"fileName":"report (2).xlsx","fileSize":"11 KB","fileDate":"07/07/2016 11:35:47"},{"fileName":"report (3).xlsx","fileSize":"11 KB","fileDate":"07/07/2016 11:35:47"},{"fileName":"report (4).xlsx","fileSize":"9 KB","fileDate":"07/13/2016 15:20:54"}]

我的 HTML 看起来像这样:

<table id="example" class="display" cellspacing="0" width="100%">
    <thead>
        <tr>
            <th>Name</th>
            <th>Size</th>
            <th>Date</th>

        </tr>
    </thead>

</table>

我的 JS 看起来像:

$(document).ready(function() {

    var oTable = $('#example').dataTable( {
        "processing": true,
        "ajax": {
        "url": "/TR3Application/FileViewerServlet",
        "dataSrc": "",
        "type": "GET"
        }
        } );


});

当我只是调用 AJAX 并记录它返回的内容时,我会从 servlet 获得完全相同的 JSON 响应。但是数据表似乎没有填充任何东西。我做错了什么?

【问题讨论】:

  • 您需要在 HTML 中添加一个 标记,以便填充数据表。只需添加一个空的。
  • 你需要columns: [ { data: 'fileName' }, { data: 'fileSize' }, { data: 'fileDate' }]吗?
  • 另外,不应该是$('#example').DataTable(...)(大写D)吗?
  • @smarx 实际上,DataTabledataTable 都可以接受。根据您需要 jQuery API 还是 DataTables API,它们的用例略有不同。见this forum post
  • 我已经尝试了所有的解决方案,但我似乎无法让它发挥作用。我看到的一件事是,在 XHR 视图中,我根本看不到对 servlet 的任何调用。我正在关注确切的文档,但我不知道发生了什么。

标签: javascript jquery servlets datatables


【解决方案1】:

您需要让 dataTables 知道列 - Json 映射。

    <tr>
        <th data-data="fileName">Name</th>
        <th data-data="fileSize">Size</th>
        <th data-data="fileDate">Date</th>
    </tr>

【讨论】:

  • 让数据表知道列的更好方法是@smarx 在他对问题的评论中提到的,带有columns 选项。
猜你喜欢
相关资源
最近更新 更多
热门标签