jQuery 数据表绘制在过滤方法后不起作用
jQuery Datatables draw does not work after filter method
我正在(尝试)使用 jQuery 数据 tables https://datatables.net/
我的 table 中有一列只有数字。例如:
<table id="queue-table">
<tr>
<td>Name</td>
<td>Count</td>
</tr>
<tr>
<td>joe</td>
<td>1</td>
</tr>
<tr>
<td>sam</td>
<td>0</td>
</tr>
<tr>
<td>mike</td>
<td>2</td>
</tr>
</table>
我想制作一个过滤器,只显示计数大于 0 的行。所以我无法进行搜索,因为它可以是 1、2、3 等...
我正在尝试使用 filter()
方法。这是文档 https://datatables.net/reference/api/filter()
我的代码如下所示:
var table = $('#queue-table').DataTable();
table.column(1).data().filter( function ( value ) {
return value > 0 ? true : false;
}).draw();
我希望这会绘制出只有 2 条记录的 table,但它显示了所有行。我在这里做错了什么?
filter()
returns一组过滤行,它不对数据集本身进行过滤。正如您在问题中提供的 link 所说:
This method should not be confused with search()DT which is used to
search for records in the DataTable. (...) and is provided as a
utility method for the DataTables API.
(请参阅下面的演示以了解概念证明 - 您的代码完全按照预期的方式执行:它 returns 一个 API 实例,有两行,其中包含值 1
和 2
)。
做你想做的,你可以创建一个自定义过滤函数:
$.fn.dataTable.ext.search.push(
function( settings, data, dataIndex ) {
return parseInt(data[1]) > 0 ? true : false;
}
);
table.draw();
查看演示 -> http://jsfiddle.net/fw8zu34t/
我正在(尝试)使用 jQuery 数据 tables https://datatables.net/
我的 table 中有一列只有数字。例如:
<table id="queue-table">
<tr>
<td>Name</td>
<td>Count</td>
</tr>
<tr>
<td>joe</td>
<td>1</td>
</tr>
<tr>
<td>sam</td>
<td>0</td>
</tr>
<tr>
<td>mike</td>
<td>2</td>
</tr>
</table>
我想制作一个过滤器,只显示计数大于 0 的行。所以我无法进行搜索,因为它可以是 1、2、3 等...
我正在尝试使用 filter()
方法。这是文档 https://datatables.net/reference/api/filter()
我的代码如下所示:
var table = $('#queue-table').DataTable();
table.column(1).data().filter( function ( value ) {
return value > 0 ? true : false;
}).draw();
我希望这会绘制出只有 2 条记录的 table,但它显示了所有行。我在这里做错了什么?
filter()
returns一组过滤行,它不对数据集本身进行过滤。正如您在问题中提供的 link 所说:
This method should not be confused with search()DT which is used to search for records in the DataTable. (...) and is provided as a utility method for the DataTables API.
(请参阅下面的演示以了解概念证明 - 您的代码完全按照预期的方式执行:它 returns 一个 API 实例,有两行,其中包含值 1
和 2
)。
做你想做的,你可以创建一个自定义过滤函数:
$.fn.dataTable.ext.search.push(
function( settings, data, dataIndex ) {
return parseInt(data[1]) > 0 ? true : false;
}
);
table.draw();
查看演示 -> http://jsfiddle.net/fw8zu34t/