正在对数据表使用服务器端处理,返回的值之一是 0
或 1
不希望数据表搜索或过滤这些值,所以我这样做在数据表中。
{"data":"Cycle.type", "targets":3, "render": function (data,type,full,meta) {
return data == '0' ?'<td> Planning</td>' : '<td>Realization</td>';
}}
似乎数据表仍然搜索服务器端返回的值,但我希望它搜索上面渲染函数返回的值。有一些 html,但我主要对 Html 标签中的值感兴趣。我怎样才能实现这个目标?
最佳答案
由于您使用的是服务器端处理,因此搜索和排序也必须在服务器端完成。
如果您使用 PHP,则可以使用 download DataTables library 时可用的 ssp.class.php
.
使用ssp.class.php
,您可以使用以下技巧和子查询来使数字字段可搜索。下面显示的只是一个简单的示例。
<?php
$table = <<<EOT
(
SELECT
field1,
field2,
(CASE WHEN type=0 THEN 'Planning' ELSE 'Realization' END) AS type
FROM table
) temp
EOT;
$primaryKey = 'id';
$columns = array(
array( 'db' => 'field1', 'dt' => 'field1' ),
array( 'db' => 'field2', 'dt' => 'field2' ),
array( 'db' => 'type', 'dt' => 'type' )
);
// SQL server connection information
$sql_details = array(
'user' => '',
'pass' => '',
'db' => '',
'host' => ''
);
require( 'ssp.class.php' );
echo json_encode(
SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns )
);
?>
要使用该技巧,您还需要编辑 ssp.class.php
并将 FROM `$table`
的所有实例替换为 FROM $table
删除反引号。
关于jquery - 让数据表搜索column.render值而不是从服务器返回的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30590536/