Как отсортировать HTML-таблицу по датам в текстовых полях? - PullRequest
0 голосов
/ 23 августа 2010

Я использую DataTable Plugin для сортировки таблиц html. Работает нормально. Теперь у меня есть столбец с датами (д / м / г) в текстовых полях. Сортировка по этому столбцу не работает. Я хочу сделать это сортируемым по дате.

Сначала я применил следующий код для сортировки текстовых полей.

Таблица с 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> 

Сортировка по дате работает нормально в столбце даты без текстовых полей.

Как применить сортировку даты по дате в текстовом поле.

EDIT:

В 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;
        },

Ответы [ 2 ]

2 голосов
/ 23 августа 2010

Руководство DataTable содержит страницу точно по этой теме, возможно, оно поможет вам найти ответ на ваш вопрос.

0 голосов
/ 23 августа 2010
<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> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...