我正在使用jQuery Datatable v1.9.4,我想在数据表上执行自定义或者说范围搜索,这里是我的数据表的截图。
这里,在第二个下拉列表中,有一段天,我想基于那个,2 nd 下拉列表过滤列period
。例如,如果period
包含文字01/02/2016 - 29/03/2016
并且我今天在29/01/2016
使用过滤器,并从下拉列表中选择第二个选项7 days ago
,那么该行将被过滤掉。
我正在使用此代码,
jQuery('#period').change(function () {
selectedValue = jQuery(this).find('option:selected').val();
jQuery('#dyntable').dataTable().fnFilter(selectedValue, 4, true);
});
当然,它不起作用。
任何人都可以帮助我。
感谢。
答案 0 :(得分:0)
确定,
我得到了解决方案。
jQuery('#period').change(function () {
jQuery('#dyntable').dataTable().fnDraw();
});
$.fn.dataTableExt.afnFiltering.push(function (oSettings, aData, iDataIndex) {
data = aData[4];
var selectedVal = $('#period').val();
if (selectedVal != "") {
selectedSplit = selectedVal.split(" - ");
dataSplit = data.split(" - ");
var f = selectedSplit[0].split("/");
var t = selectedSplit[1].split("/");
var selectedFrom = new Date(f[2], f[1] - 1, f[0]);
var selectedTo = new Date(t[2], t[1] - 1, t[0]);
var f = dataSplit[0].split("/");
var t = dataSplit[1].split("/");
var tableFrom = new Date(f[2], f[1] - 1, f[0]);
var tableTo = new Date(t[2], t[1] - 1, t[0]);
if (tableFrom.getTime() >= selectedFrom.getTime() && tableTo.getTime() <= selectedTo.getTime()) {
return true;
}
return false;
}
return true;
});