首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataTables行很好,但没有初始化?

问DataTables行很好,但没有初始化?
EN

Stack Overflow用户
提问于 2014-09-17 07:59:27
回答 1查看 440关注 0票数 1

我已经用DataTables建立了我的网站。

我从java后端通过它的ajax服务获取数据--这很好,DOM一切看起来都很好。但是,尽管我所有的数据都正常工作,但似乎所有的DataTables功能都在失败。

​

​

(所有字段都工作,我故意将null返回给空字段)

我的jQuery DataTables设置如下所示:

代码语言:javascript
复制
function getUserTable() {
  var table = $('#example').DataTable({
    "destroy": true,
    "processing": true,
    "serverSide": true,
    "ajax": {
        "dataType": 'json',
        "url": "action=getAllUsers",
        "type": "POST",
        "dataSrc": "allUsers"
    },
    "columns": [
        {"data": "id"},
        {"data": "username"},
        {"data": "firstName"},
        {"data": "lastName"},
        {"data": "loggedIn"},
        {"data": "email"}
    ]
  });
}

所以我将serverside设置为true,因为我的后端位于同一台服务器上--我似乎找不到这方面的任何教程,但似乎内置的搜索功能在其设置为服务器端时不起作用?

另外,为什么这些表似乎没有初始化呢?它显示了太多的页面,并说“显示0到0的0项”。

返回的json数据如下所示:

代码语言:javascript
复制
allUsers: [{email:null, firstName:null, id:1, lastName:null, loggedIn:false, username:mag},…]

Html表格结构:

代码语言:javascript
复制
<table id="example" class="display" cellspacing="0" width="100%">
                <thead>
                    <tr>
                        <th>Id</th>
                        <th>Brugernavn</th>
                        <th>Navn</th>
                        <th>Efternavn</th>
                        <th>Logged</th>
                        <th>Email</th>
                    </tr>
                </thead>
                <tfoot>
                    <tr>
                        <th>Id</th>
                        <th>Brugernavn</th>
                        <th>Navn</th>
                        <th>Efternavn</th>
                        <th>Logged</th>
                        <th>Email</th>
                    </tr>
                </tfoot>
            </table>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-17 08:24:16

关于内置搜索功能,我记得,你是对的。它不适用于AJAX。您可以使用它,但不使用内置搜索。搜索必须在服务器端完成。当使用搜索字段时,使用包含搜索值的附加参数生成一个新的AJAX。

要使分页工作,您必须返回ajax响应中的总条目数,并在初始化DataTables时设置分页配置。

示例

Ajax响应:

代码语言:javascript
复制
{"iTotalRecords":"497","iTotalDisplayRecords":"497","aaData":[]}

分页配置:

代码语言:javascript
复制
var gridSettings = {
/* .... */
    "iDisplayStart": 0,
    "iDisplayLength": 20
};
$('#elt').dataTable(gridSettings);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25885230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档