数据表:当 serverSide 选项为真时如何搜索呈现(更改)的数据

Datatables: How to search for rendered(changed) data when serverSide option is true

我正在使用数据表 1.10。

我想在 serverSide 选项为 true 时搜索渲染(更改)的数据。

例子

  1. 服务器 returns mf gender 字段。
  2. 使用渲染函数:Male 用于 mFemale 用于 f
  3. 搜索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,等等