所以我的数据表中有一个日期列,它有一个使用日期范围而不是日期选择器构建的自定义过滤器。
$('#idOfTheDateRangePicker').on('apply.daterangepicker',
function(ev, picker) {
var start_date = picker.startDate.format('DD.MM.YYYY');
var end_date = picker.endDate.format('DD.MM.YYYY');
var position = $(this).attr('position');
var min_date = createDate(start_date);
var max_date = createDate(end_date);
var filter = function(settings, data, index) {
var data_date = createDate(data[position]);
if(data_date >= min_date && data_date <= max_date) {
return true;
} else {
return false;
}
};
$.fn.dataTable.ext.search.push(filter);
var table = $('#thisTableId').DataTable();
table.draw();
$.fn.dataTable.ext.search.splice($.fn.dataTable.ext.search.indexOf(filter, 1));
});
此过滤器适用于返回日期在给定日期范围内的行。
问题是,当我点击列标题上的排序功能时,它将重置日期范围过滤器并显示所有行。然而,排序不会破坏我的所有非范围自定义过滤器,例如使用select或datepicker过滤,将单个值传递给表列搜索。
如何设置它,以便即使单击排序按钮,上面的日期范围过滤器仍会应用于表格?
答案 0 :(得分:1)
工作演示:http://jsfiddle.net/thecreativedev/7895nv2b/
const tabs = createBottomTabNavigator({
Home: {
screen: HomeComponent,
path: '/',
navigationOptions: {
tabBarIcon: ({ focused, tintColor }) => {
const iconName = `ios-information-circle${focused ? '' : '-outline'}`;
return <Ionicons name={iconName} size={25} color={tintColor} />;
},
},
},
// ...
});