У меня есть столбец активности за последний день в таблице данных. Если строка таблицы содержит значение даты по умолчанию, например 01/01/0001 , в столбце даты я просто заменяю текст no activity . Проблема в том, что при сортировке дата последнего столбца даты активности не сортируется. Как я могу отсортировать столбец таблицы данных, если в столбце даты есть текст по сравнению со значением даты по умолчанию.
Я использую этот код, он отлично работает с нулевыми датами. Пожалуйста помоги. Заранее спасибо!
(function (factory) {
if (typeof define === "function" && define.amd) {
define(["jquery", "moment", "datatables.net"], factory);
} else {
factory(jQuery, moment);
}
}
(function ($, moment) {
$.fn.dataTable.moment = function (format, locale, reverseEmpties) {
var types = $.fn.dataTable.ext.type;
// Add type detection
types.detect.unshift(function (d) {
if (d) {
// Strip HTML tags and newline characters if possible
if (d.replace) {
d = d.replace(/(<.*?>)|(\r?\n|\r)/g, '');
//d = d.replace('No Activity', '');
}
// Strip out surrounding white space
d = $.trim(d);
}
// Null and empty values are acceptable
if (d === '' || d === null) {
debugger
return 'moment-' + format;
}
return moment(d, format, locale, true).isValid() ?
'moment-' + format :
null;
});
// Add sorting method - use an integer for the sorting
types.order['moment-' + format + '-pre'] = function (d) {
if (d) {
// Strip HTML tags and newline characters if possible
if (d.replace) {
d = d.replace(/(<.*?>)|(\r?\n|\r)/g, '');
}
// Strip out surrounding white space
d = $.trim(d);
}
return !moment(d, format, locale, true).isValid() ?
(reverseEmpties ? -Infinity : Infinity) :
parseInt(moment(d, format, locale, true).format('x'), 10);
};
};
}));