количество данных индекса каждой строки в datatable - PullRequest
0 голосов
/ 07 октября 2019

Я хочу создать и показать сортировку номеров по возрастанию данных в таблицах данных, как на этом рисунке индекс

, и у меня нет отсортированного номера данных в базе данных и моих данных JSONмой код:

$(document).ready(function() {
        $('#dataya').DataTable({
             lengthChange: false,
             ajax: {
                     url: "http://localhost/jdih_webservice/api/xxxx",
                     dataSrc: ""
             },
             columns: [
                     { data: "id_dokumen"},
                     { data: "judul"},
                     { data: "subjek"}
             ],
             select: true
        });
    $('#search').click(function(){
      var start_date = $('#start_date').val();
      var end_date = $('#end_date').val();
                var myTable = $('#dataya').DataTable({
            "paging": true,
            "lengthChange": true,
            "searching": true,
            "ordering": true,
            "info": true,
                    "bDestroy": true,
            "autoWidth": true,
            "data": [],
            "columns": [{
                "title": "ID",
                "data": "id_dokumen"
            }, {
                "title": "Judul",
                "data": "judul"
            }, {
                "title": "Subjek",
                "data": "subjek"
            }],
                    "order": [[ 1, 'asc' ]]
        });

      if(start_date != '' && end_date !='')
      {
        var startDate = new Date(start_date);
                    var tglmulai = startDate.getFullYear();
        var endDate = new Date(end_date);
                    var tglselesai = endDate.getFullYear();
        let url = 'http://localhost/jdih_webservice/api/xxxx';
        fetch(url)
        .then(res => res.json())
        .then((out) => {
            var resultProductData = out.filter(function(a) {
            var createdAt = new Date(a.tgltetap);
                            var tgldata = createdAt.getFullYear();
              if( tgldata >= tglmulai && tgldata <= tglselesai ) return a;
            });
                            myTable.clear();
                            $.each(resultProductData, function (index, value) {
                          myTable.row.add(value);
                        });
                        myTable.draw();
        })
        .catch(err => { throw err });

      }
    });
  });

Кто-нибудь может помочь? , так что спасибо, и, возможно, если вы не заняты, вы можете создать / собрать в jsfiddle

1 Ответ

0 голосов
/ 08 октября 2019

Этот код взят из этого потока DataTables и должен делать то, что вы хотите. Для индексов используется дополнительный столбец:

dataTable.on( 'order.dt search.dt', function () {
       dataTable.column(0, {search:'applied', order:'applied'}).nodes().each( function (cell, i) {
           cell.innerHTML = i+1;
       } );
} ).draw();
...