当前位置: 首页 > 知识库问答 >
问题:

无法使用服务器端分页将数据加载到datatable

许彦
2023-03-14

我已经尝试为我的表(jQuery(v1.12.4)、datatable(v1.10.15))实现服务器端分页概念

根据可数据服务器端分页留档

我已经启用了serverSide,分页,处理为true,并指定了sPaginationType以及ajax。

在Custom Data Source Property文章中提到,我们需要使用dataSrc选项作为字符串来从不同的源属性获取数据,在本例中,它可以是任何值,使用标准的点式Javascript对象表示法包含嵌套属性。

我已经按照上面的观点使用了dataSrc,即“dataSrc”:“data”基于我的json响应。

但是,没有加载数据。

“我的表”仅加载“批准”按钮(我在“列”部分中定义了该按钮),其余列为空。-确保表中未呈现数据。

参见输出2图。

因为我使用了延迟加载,所以加载第一页返回空数据。参考输出1图像。

我已经参考了以下所有提到的文章

自定义数据源属性dataSrc和分页问题

数据服务器端处理分页问题

代码如下所示,请帮助

$('#vschildtable').DataTable({
        "language": {
            "processing": "Please
            wait - LOADING SCAN Result...", "
            emptyTable " : "
            Currently no
            data found in this project " }, "
            bJQueryUI " : true, "
            paging " :
            true,
            "sPaginationType": "full_numbers",
            "processing ": true,
            "serverSide": true,
            "columns": [{
                    "defaultContent": "",
                    "visible": false
                }, {
                    "defaultContent": "",
                    "visible": false
                }, {
                    "defaultContent": ""
                }, {
                    "defaultContent": ""
                }, {
                    "defaultContent": ""
                }, {
                    data: null,
                    defaultContent: ' <
                        button type = "button"
                    class = "btn-approve label label-link bg-green " > Approve < /button>
                    ' } ], "deferLoading" : 57, "ajax" : { "url" : "emppage?empID=" +
                    encodeURIComponent(empID) + "&projectId=" +
                    encodeURIComponent(projectID) + "&subProjectId=" +
                    encodeURIComponent(subProjectID) + "&pageNo=" +
                    encodeURIComponent(offset),
                    type: 'POST',
                    datatype: "jsonp",
                    "dataSrc": "data"
                }
            });

Json回应:

    [{
   "message":"SUCCESS",
   "data":"{\"data\":\[{\"projectId\":1,\"subProjectId\":1,\"empID\":765,\"empName\":\"Arjun\",\"empIDVersion\":\"1%3A4.1.4\",\"fkempID\":7781,\"tmpempID\":354999,\"noOfDept\":1,\"rowNo\":1,\"totalnoOfDept\":1},{\"projectId\":1,\"subProjectId\":1,\"empID\":765,\"empName\":\"Arjun\",\"empIDVersion\":\"4.0.18.1\",\"fkempID\":7781,\"tmpempID\":355000,\"noOfDept\":1,\"rowNo\":2,\"totalnoOfDept\":1},{\"projectId\":1,\"subProjectId\":1,\"empID\":765,\"empName\":\"Arjun\",\"empIDVersion\":\"4.2.1\",\"fkempID\":7781,\"tmpempID\":355001,\"noOfDept\":1,\"rowNo\":3,\"totalnoOfDept\":1}\]}"
}]

共有1个答案

苍温文
2023-03-14

据我所知,服务器返回的数据中缺少信息。在服务器端模式下运行时,DataTables需要服务器提供一些特定数据(绘制记录过滤,等等)。你可以在这里查一下

此外,您应该向数组中的每个对象添加数据属性,指定希望在该列中呈现的数据的名称,即:

columns:[
    { data:'projectId'   }
    { data:'subPorjectId'}
    ...
]

这会告诉DataTables要在哪列中显示哪些数据。

希望有帮助!

 类似资料:
  • 我试图使Angularjs服务器端分页在这个链接https://l-lin.github.io/angular-datatables/#/serverSideProcessing 所以我用这个暗号 我在dataSrc参数中手动添加了recordsTotal、recordsFiltered和row 这是添加recordsTotal、recordsFiltered和row之前和之后的json数据 添加

  • 我正在尝试从ldap服务器到liferay的身份验证。我的要求是使用screename登录到liferay。 当我使用来自ldap服务器的用户登录时,会出现以下异常。 有人能帮我解决这个问题吗?

  • 我无法将数据加载到表中。我有类,其名称为、等。我想将、插入到TextField上的表播放器中。 我正在执行与下面所示完全相同的操作:http://docs.oracle.com/javase/8/javafx/user-interface-tutorial/table-view.htm#cjagaaee 但我不能让它起作用。有人能帮我吗?

  • 当我尝试将对象内容上载到FTP服务器 [它的值从[T:InputFileUpload]组件中获取] 我的web浏览器中的加载指示器播放并且不会停止 调试时,我发现我的come在一行中冻结 但是我尝试了3个方法(如代码所示)来上载 ,但是所有方法仍然不工作 将文件上载到FTPServer控制器方法

  • 我试图从一个网页中以乐透模拟机的形式接收一组数字。我运行服务器,通过浏览器中的本地主机打开页面,输入数字并提交,但下一页上没有显示任何内容,甚至没有404错误。可能是地图问题,但我迷路了。有什么想法吗? 我otto.class 指数html 网状物xml 这三个文件具有以下目录: 大乐透WEB-Lotto\WEB-classes\tomcat.5\webcat.5。班 index.htmlZ:\a

  • 让我给你一个关于系统如何工作的想法。 我使用JAAS登录模块进行登录和角色管理。我可以根据我的角色访问特定页面。 我在地址栏中输入我的url,点击回车键。 登录页面出现,正确登录后,它会将我重定向到正确的页面(现在我们称之为page1.jsf)。 我想在页面加载时调用服务器端方法。 你能帮我吗? **编辑** 假设我必须访问第1页。jsf,仅角色1可访问。 在地址栏中,我输入http://loca