Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.11.2019, 13:31
Аспирант
Отправить личное сообщение для Ramundo Посмотреть профиль Найти все сообщения от Ramundo
 
Регистрация: 07.03.2015
Сообщений: 47

Jquery datatables sorting
Помогите пожалуйста, в таблице, по которой я строю jquery datatable, есть поле birth_date в формате yyyy-mm-dd
Мне нужно, чтобы в колонке День рождения отображался день + название месяца, но при сортировке упорядочивалось по ( месяц рождения + '.' + день), например 01.30

В документации по Datatables сказано, что если в функции render прописать
if ( type === "sort"){
    myStuff = 'aazazaa';
    return myStuff;
}
то колонка будет сортироваться по myStuff, a не по data
Но что то нихрена не работает так) Всегда сортируется только по полной дате рождения, т.е . birth_date
{
                        "sortable": true, data:'birth_date', "title": "День рождения",
                        "render": function (data, type, row, meta) {

                            if (!data) {
                                return '';
                            }
                            var date = new Date(data);
                            var month = date.getMonth();
                            var day = date.getDate();

                            var birthday = day + ' ' + monthsLocalised[month];

                            if (type === "filter" || type === "sort" || type === "type") {
                               //При сортировке должно упорядочивать по месяцу, но упорядочивает по полной дате рождения
                                return month;
                            }

                            return '<div class = "scale-div1">' + birthday + '</div>';
                        }
                    },
Ответить с цитированием
  #2 (permalink)  
Старый 02.11.2019, 02:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 27,076

dataTables birthday
Ramundo,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
  <link rel="stylesheet" href="https://cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css">
  <script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>
  <script>
$(function() {
$('#example').DataTable( {
        "order": [[ 4, "asc" ]],
        "columnDefs": [
            {

                "render": function ( data, type, row ) {
                    var date = new Date(data);
                    var month = date.getMonth();
                    var day = date.getDate();
                    var birthday = date.toLocaleDateString('ru', {month: 'long', day: 'numeric'});
                    if (type === "filter" || type === "sort" || type === "type")  return month * 100 + day;
                    return birthday;

                },
                "targets": 4
            },
           { "visible": false,  "targets": [ 1, 3 ] }
        ]
    } );
});
  </script>
</head>

<body>
<table id="example" class="display" style="width:100%">
        <thead>
            <tr>
                <th>Name</th>
                <th>Position</th>
                <th>Office</th>
                <th>Age</th>
                <th>Start date</th>
                <th>Salary</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>Tiger Nixon</td>
                <td>System Architect</td>
                <td>Edinburgh</td>
                <td>61</td>
                <td>2011-04-25</td>
                <td>$320,800</td>
            </tr>
            <tr>
                <td>Garrett Winters</td>
                <td>Accountant</td>
                <td>Tokyo</td>
                <td>63</td>
                <td>2011-07-25</td>
                <td>$170,750</td>
            </tr>
            <tr>
                <td>Ashton Cox</td>
                <td>Junior Technical Author</td>
                <td>San Francisco</td>
                <td>66</td>
                <td>2009-01-12</td>
                <td>$86,000</td>
            </tr>
            <tr>
                <td>Cedric Kelly</td>
                <td>Senior Javascript Developer</td>
                <td>Edinburgh</td>
                <td>22</td>
                <td>2012-03-29</td>
                <td>$433,060</td>
            </tr>
            <tr>
                <td>Airi Satou</td>
                <td>Accountant</td>
                <td>Tokyo</td>
                <td>33</td>
                <td>2008-11-28</td>
                <td>$162,700</td>
            </tr>
            <tr>
                <td>Brielle Williamson</td>
                <td>Integration Specialist</td>
                <td>New York</td>
                <td>61</td>
                <td>2012-12-02</td>
                <td>$372,000</td>
            </tr>
            <tr>
                <td>Herrod Chandler</td>
                <td>Sales Assistant</td>
                <td>San Francisco</td>
                <td>59</td>
                <td>2012-08-06</td>
                <td>$137,500</td>
            </tr>
            <tr>
                <td>Rhona Davidson</td>
                <td>Integration Specialist</td>
                <td>Tokyo</td>
                <td>55</td>
                <td>2010-10-14</td>
                <td>$327,900</td>
            </tr>
            <tr>
                <td>Colleen Hurst</td>
                <td>Javascript Developer</td>
                <td>San Francisco</td>
                <td>39</td>
                <td>2009-09-15</td>
                <td>$205,500</td>
            </tr>
            <tr>
                <td>Sonya Frost</td>
                <td>Software Engineer</td>
                <td>Edinburgh</td>
                <td>23</td>
                <td>2008-12-13</td>
                <td>$103,600</td>
            </tr>
            <tr>
                <td>Jena Gaines</td>
                <td>Office Manager</td>
                <td>London</td>
                <td>30</td>
                <td>2008-12-19</td>
                <td>$90,560</td>
            </tr>
            <tr>
                <td>Quinn Flynn</td>
                <td>Support Lead</td>
                <td>Edinburgh</td>
                <td>22</td>
                <td>2013-03-03</td>
                <td>$342,000</td>
            </tr>
            <tr>
                <td>Charde Marshall</td>
                <td>Regional Director</td>
                <td>San Francisco</td>
                <td>36</td>
                <td>2008-10-16</td>
                <td>$470,600</td>
            </tr>
        </tbody>
        <tfoot>
            <tr>
                <th>Name</th>
                <th>Position</th>
                <th>Office</th>
                <th>Age</th>
                <th>Start date</th>
                <th>Salary</th>
            </tr>
        </tfoot>
    </table>
</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Просмотрела исходик jQuery Откорректируйте где не верно taksebe jQuery 5 23.11.2018 22:42
DataTables jQuery, Row details AlexOk jQuery 1 05.07.2017 14:52
jquery dataTables, serverSide=true - пагинация не работает lexnext1 Элементы интерфейса 1 12.01.2015 14:29
Динамический подсчет в таблице muraig jQuery 5 11.10.2014 16:54
jQuery DataTables отобразить число записей без запятой Sveta jQuery 4 24.04.2014 15:27