我正在使用DataTable Plugin进行html表排序。它工作正常。现在我在文本框中有一个带日期(d / m / Y)的列。对该列进行排序不起作用。我希望按日期对此进行排序。
首先,我应用以下代码使文本框可排序。
包含3个字段的表:
<script type='text/javascript' charset='utf-8'>
$.fn.dataTableExt.afnSortData['dom-text'] = function ( oSettings, iColumn ) {
var aData = [];
$( 'td:eq('+iColumn+') input', oSettings.oApi._fnGetTrNodes(oSettings) ).each( function () {
aData.push( this.value );
} );
return aData;
}
$(document).ready(function() {
$('#sortableTable').dataTable( {
'aoColumns': [null, null,{ 'sSortDataType': 'dom-text' }]
} );
} );
</script>
日期排序在没有文本字段的日期列上正常工作。
修改
jquery.dataTables.js中有以下功能
"date-asc": function ( a, b )
{
var x = Date.parse( a );
var y = Date.parse( b );
if ( isNaN(x) || x==="" )
{
x = Date.parse( "01/01/1970 00:00:00" );
}
if ( isNaN(y) || y==="" )
{
y = Date.parse( "01/01/1970 00:00:00" );
}
return x - y;
},
"date-desc": function ( a, b )
{
var x = Date.parse( a );
var y = Date.parse( b );
if ( isNaN(x) || x==="" )
{
x = Date.parse( "01/01/1970 00:00:00" );
}
if ( isNaN(y) || y==="" )
{
y = Date.parse( "01/01/1970 00:00:00" );
}
return y - x;
},
答案 0 :(得分:2)
DataTable的手册完全针对该主题a page,也许它可以帮助您找到问题的答案。
答案 1 :(得分:0)
<script type='text/javascript' charset='utf-8'>
$.fn.dataTableExt.afnSortData['dom-text'] = function ( oSettings, iColumn ) {
var aData = [];
$( 'td:eq('+iColumn+') input', oSettings.oApi._fnGetTrNodes(oSettings) ).each( function () {
aData.push( this.value );
} );
return aData;
}
$(document).ready(function() {
$('#sortableTable').dataTable( {
'aoColumns': [null, null,{ 'sSortDataType': 'dom-text', 'sType': 'date' }]
} );
} );
</script>