【发布时间】:2014-10-08 02:01:42
【问题描述】:
当用户单击搜索按钮时,我正在尝试对数据表执行搜索。
如果我单击 NY/London 按钮,表格将正确过滤。 如果我现在单击 San Francisco 按钮,表格将不显示任何记录。
我认为这种行为是因为需要先清除表中的所有现有搜索,然后才能进行新搜索。我不知道该怎么做。
代码如下:
$(document).ready( function () {
var table = $('#example').DataTable();
function filter_table(param1,param2){
$.fn.dataTable.ext.search.push(
function( settings, data, dataIndex ) {
if ( data[2]==param1 || data[2]==param2){return true;}
return false;
}
);
}
$("#ny_london").click(function(){
filter_table('New York','London');
table.draw();
});
$("#sf").click(function(){
filter_table('San Francisco',null);
table.draw();
});
} );
这是表格和代码的实时链接。
http://live.datatables.net/tulavila/1/edit
有人知道如何完成这项工作吗?
【问题讨论】:
-
不是 NY/London 按钮有效而 San Francisco 按钮无效。如果您先单击 San Francisco 按钮,您会发现 NY/London 按钮没有按照您希望的方式执行。这是因为过滤后的表被重绘为一个新表,旧金山或纽约/伦敦不能同时共存。
-
所以我需要先重新绘制整个表格,然后过滤。我现在以不同的方式使用数据表过滤器函数,如果一行满足我的条件,则返回 true。
标签: jquery jquery-datatables datatables-1.10