为啥服务器端数据表在一页中显示所有记录而搜索不起作用?
Posted
技术标签:
【中文标题】为啥服务器端数据表在一页中显示所有记录而搜索不起作用?【英文标题】:why server-side datatables show all records in one page and search doesn't work?为什么服务器端数据表在一页中显示所有记录而搜索不起作用? 【发布时间】:2019-02-18 03:53:54 【问题描述】:我一直在使用 data-table 。一切都很好,问题是 - 分页无法正常工作, - 搜索不起作用 - 所有数据仅显示在一页中
我使用下面的代码来初始化数据表-
$(document).ready(function ()
$('#example').DataTable(
"processing" : true,
"serverSide" : true,
"pageLength" : 5,
"lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
"ajax" :
url: "/users",
type:"GET",
dataSrc : "data",
,
"columns":[
"data": "id",
"data": "name",
"data": "tweet"
]
);
);
和我的控制器服务(播放框架)
public Result ListAll()
List<User> users = User.find.all();
System.out.println(toJson(users).toString());
DataTableObject dataTableObject = new DataTableObject();
dataTableObject.setData(users);
String json = toJson(dataTableObject).toString();
System.out.println("----> " + json );
return ok(toJson(dataTableObject));
和DataTableObject 类
public class DataTableObject
int draw = 1;
int recordsTotal= 26;
int recordsFiltered =26;
List<User> data;
public int getRecordsTotal()
return recordsTotal;
public void setDraw(int draw)
this.draw = draw;
public int getDraw()
return draw;
public void setRecordsTotal(int recordsTotal)
this.recordsTotal = recordsTotal;
public int getRecordsFiltered()
return recordsFiltered;
public void setRecordsFiltered(int recordsFiltered)
this.recordsFiltered = recordsFiltered;
public List<User> getData()
return data;
public void setData(List<User> data)
this.data = data;
这是我http://localhost:9000/的截图
【问题讨论】:
【参考方案1】:当使用serverSide:true
时,Datatables 不处理搜索、过滤、分页或排序。当您对表格进行分页、排序或搜索时,您必须根据与 Get/Post 请求一起发送的 sent parameters 数据表来操作您的查询。
【讨论】:
以上是关于为啥服务器端数据表在一页中显示所有记录而搜索不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
JQuery animate scrollTop 在一页中不起作用