数据表:当 serverSide 选项为真时如何搜索呈现(更改)的数据
Datatables: How to search for rendered(changed) data when serverSide option is true
我正在使用数据表 1.10。
我想在 serverSide 选项为 true 时搜索渲染(更改)的数据。
例子
- 服务器 returns
m
或 f
gender
字段。
- 使用渲染函数:
Male
用于 m
,Female
用于 f
- 搜索
Male
失败,因为服务器没有任何Male
性别
这是一些数据表的初始代码。
$('#UserList').dataTable({
serverSide: true,
columns: [
{data: 'gender', render: function(data, type, full, meta) {
if (type === 'display' || type === 'filter') {
switch (data) {
case 'm': return 'Male';
case 'f': return 'Female';
default: return 'Unknown';
}
}
return data;
...
有什么想法吗?
以下是 official documentation 的节选。根据定义,启用服务器端处理后,将不会执行客户端过滤。
Client-side processing - where filtering, paging and sorting calculations are all performed in the web-browser.
Server-side processing - where filtering, paging and sorting calculations are all performed by a server.
使用 serverSide: true
时,渲染将不会被调用 type
等于 filter
。
解决方案是调整您的服务器端代码以处理这种特殊情况,即当请求中的参数 search[value]
包含单词 Male
时,包括您的 gender
字段所在的记录等于 m
,等等
我正在使用数据表 1.10。
我想在 serverSide 选项为 true 时搜索渲染(更改)的数据。
例子
- 服务器 returns
m
或f
gender
字段。 - 使用渲染函数:
Male
用于m
,Female
用于f
- 搜索
Male
失败,因为服务器没有任何Male
性别
这是一些数据表的初始代码。
$('#UserList').dataTable({
serverSide: true,
columns: [
{data: 'gender', render: function(data, type, full, meta) {
if (type === 'display' || type === 'filter') {
switch (data) {
case 'm': return 'Male';
case 'f': return 'Female';
default: return 'Unknown';
}
}
return data;
...
有什么想法吗?
以下是 official documentation 的节选。根据定义,启用服务器端处理后,将不会执行客户端过滤。
Client-side processing - where filtering, paging and sorting calculations are all performed in the web-browser.
Server-side processing - where filtering, paging and sorting calculations are all performed by a server.
使用 serverSide: true
时,渲染将不会被调用 type
等于 filter
。
解决方案是调整您的服务器端代码以处理这种特殊情况,即当请求中的参数 search[value]
包含单词 Male
时,包括您的 gender
字段所在的记录等于 m
,等等