Jquery datatables-使用datetime和string对列进行自定义排序

Jquery datatables-使用datetime和string对列进行自定义排序,jquery,jquery-datatables,Jquery,Jquery Datatables,我正在使用jquery数据表,我有一个列包含这些值的组合。日期、字符串“A”和另一个字符串“B”。当我点击该列时,我希望该列先显示“A”,然后按日期排序,然后再显示“B”。是否有办法实现此功能?如果使用客户端,请检测DataTables排序侦听器,然后连接您自己的调用 使用服务器端数据库实现这一点要容易得多,因为您可以始终在select语句中包含一个静态ORDERBY子句作为辅助排序选项 如果需要其他帮助,请发布更多代码如果使用客户端,请检测DataTables排序侦听器,然后附加您自己的调用

我正在使用jquery数据表,我有一个列包含这些值的组合。日期、字符串“A”和另一个字符串“B”。当我点击该列时,我希望该列先显示“A”,然后按日期排序,然后再显示“B”。是否有办法实现此功能?

如果使用客户端,请检测DataTables排序侦听器,然后连接您自己的调用

使用服务器端数据库实现这一点要容易得多,因为您可以始终在select语句中包含一个静态ORDERBY子句作为辅助排序选项


如果需要其他帮助,请发布更多代码

如果使用客户端,请检测DataTables排序侦听器,然后附加您自己的调用

使用服务器端数据库实现这一点要容易得多,因为您可以始终在select语句中包含一个静态ORDERBY子句作为辅助排序选项


如果需要其他帮助,请发布更多代码。

客户端:

$.extend($.fn.DataTable.ext.oSort, {
   /*
   *
   *custom_date sorting
   */
    "custom_date": function (a) {
        return a;
    },
    "custom_date-asc": function (x, y) {
        var x = getCustomEuroDateValue(x);
        var y = getCustomEuroDateValue(y);
        return ((x < y) ? -1 : ((x > y) ? 1 : 0));
    },
    "custom_date-desc": function (x, y) {
        var x = getCustomEuroDateValue(x);
        var y = getCustomEuroDateValue(y);
        return ((x < y) ? 1 : ((x > y) ? -1 : 0));
    },
});
function getCustomEuroDateValue(strDate) {
   // return a string by spiting and merging the date as you need
   // B A 02/11/2013 to A20131102B
   //
   // Example : 
   // var frDatea = $.trim(strDate);
   // var frDatea1 = frDatea.split(' ');
   // var frDatea2 = frDatea1[2].split('/');
   // var x = (frDatea1[1] + frDatea2[2] + frDatea2[1]+ frDatea2[0] + frDatea1[0]);
   // return x;


}

客户端:

$.extend($.fn.DataTable.ext.oSort, {
   /*
   *
   *custom_date sorting
   */
    "custom_date": function (a) {
        return a;
    },
    "custom_date-asc": function (x, y) {
        var x = getCustomEuroDateValue(x);
        var y = getCustomEuroDateValue(y);
        return ((x < y) ? -1 : ((x > y) ? 1 : 0));
    },
    "custom_date-desc": function (x, y) {
        var x = getCustomEuroDateValue(x);
        var y = getCustomEuroDateValue(y);
        return ((x < y) ? 1 : ((x > y) ? -1 : 0));
    },
});
function getCustomEuroDateValue(strDate) {
   // return a string by spiting and merging the date as you need
   // B A 02/11/2013 to A20131102B
   //
   // Example : 
   // var frDatea = $.trim(strDate);
   // var frDatea1 = frDatea.split(' ');
   // var frDatea2 = frDatea1[2].split('/');
   // var x = (frDatea1[1] + frDatea2[2] + frDatea2[1]+ frDatea2[0] + frDatea1[0]);
   // return x;


}