2014-10-01 89 views
0

我排序我的数据表时出现错误。 Datatable检测并解释我的列中的字符串以进行排序。jQuery Datatable排序“无效月份”错误

示例:一个包含用户姓氏的列,其中一个用户名为“Decxxxxx”,Datatable在我的用户姓氏中检测到“Dec”的前3个字母,并将我的列解释为日期(Dec> December)如果我将TypeDefs中的类型强制为一个字符串,而不是一个日期,它什么也不做。

jQuery.extend(jQuery.fn.dataTableExt.oSort, { 
    "date-euro-pre": function (a) { 
     var x; 
     if ($.trim(a) !== '') { 
      var frDatea = $.trim(a).split(' '); 
      var frTimea = frDatea[1].split(':'); 
      var frDatea2 = frDatea[0].split('/'); 
      x = (frDatea2[2] + frDatea2[1] + frDatea2[0] + frTimea[0] + frTimea[1] + frTimea[2]) * 1; 
     } 
     else { 
      x = Infinity; 
     } 
     return x; 
    }, 
    "date-euro-asc": function (a, b) { 
     return a - b; 
    }, 
    "date-euro-desc": function (a, b) { 
     return b - a; 
    } 
}); 

var oTable = jQuery('.dataTable').dataTable({ 
    "iDisplayLength": 10, 
    "aaSorting": [[ 1, "asc" ]], 
    "bFilter": true, 
    "bRetrieve":true, 
    "columns" : columnDefs, 
    "aoColumns": columnSort, 
    "aLengthMenu": [ 
     [10, 25, 50, 100, -1], 
     [10, 25, 50, 100, "tous"] 
    ]} 
); 

与:

columnDefs = [null, null, null, null, null, Object { sType="date-euro"}, null, null](ligne 940) 
columnSort = [Object { bSortable=false}, null, null, null, null, null, Object { bSortable=false}, Object { bSortable=false}] 

牵连的列是第二。

错误:错误:“Declercq”第二列第一行中包含“十二月”中包含“Dec”的错误:无效的月份字符串。

回答