Wol*_*fik 1 java spring datatables
我有带有客户端分页的Spring REST应用程序,DataTables默认使用它,并且一切正常。现在,我需要将其更改为服务器端分页,但我有问题,因为不知道如何从DataTables中获取客户端想要查看的页码信息。我在DT手册中找不到任何有用的内容。
当您说Datatable我假设您正在考虑使用DataTables jQuery插件时。
要激活服务器端分页,您需要通过
"serverSide": true,
Run Code Online (Sandbox Code Playgroud)
像这样:
$('#example').DataTable( {
"processing": true,
"serverSide": true,
"ajax": "/your_url"
});
Run Code Online (Sandbox Code Playgroud)
执行上述操作将激活服务器端分页。但是您也需要在服务器端进行一些更改。让我们逐步了解它们。
serverSide为trueDataTables插件使用以下信息向AJAX调用添加自定义参数
order: asc
start: 20
length: 10
// and many more.
Run Code Online (Sandbox Code Playgroud)
您可以检查此文档链接,并在单击下一页按钮时查看请求中传递的参数。
"draw": 3, // unique ID
"recordsTotal": 57, // total number of records
"recordsFiltered": 57 // total number of filtered records
Run Code Online (Sandbox Code Playgroud)
您这次可以检查相同的链接并查看响应数据。
您需要queryParam在控制器API的POST调用中为GET和attr 添加这些参数:
order: asc
start: 20
length: 10
Run Code Online (Sandbox Code Playgroud)
在服务层中,您将从数据库中获取详细信息。
您需要获取记录的总数,并且在LIMIT 10, 10MySQl的情况下,在搜索查询中传递LIMIT子句。
例如:
SELECT * FROM User LIMIT 20,10;
Run Code Online (Sandbox Code Playgroud)
使用start和length计算下一组记录。
这可能会比较棘手,但是如果您理解并正确实施,那就很有趣了。
小智 5
请参阅有关 DataTables 服务器端处理的示例: https://datatables.net/examples/server_side/simple.html
更改页面后,您可以按以下格式捕获对服务器的请求: https://.../server_processing.php?绘制=3 &列...&顺序=0&dir=asc&开始=20&长度=10 &搜索%5Bvalue%5D=&搜索%5Bregex%5D=假&_=1534436781912
这意味着 DataTable 请求页码 3 (draw=3),按第一列升序排列,...
在服务器端(REST),您可以通过(例如) request.getParameter("draw") 获取页码
| 归档时间: |
|
| 查看次数: |
3218 次 |
| 最近记录: |