dataTables .row() не является функцией, обрабатывающей детали строки на стороне сервера.

 function format ( d ) {
return 'Full name: <br>'+
       'Salary:<br>'+
       'The child row can contain any data you wish, including links, images, inner     tables etc.';
  }

 $(function() {
 var dtable = $('#table_echipamente').dataTable( {
    "processing": true,
    "serverSide": true,
    "ajax": {
        "url": "inc/table_echipamente.php",
        "type": "POST"
    },
    "columns": [
        {
            "class":          "details-control",
            "orderable":      false,
            "data":           null,
            "defaultContent": ""
        },
        { "data": "beneficiar" },
        { "data": "distribuit" },
        { "data": "data_distribuit" },
        { "data": "denumire" },
        { "data": "nr_inventar_nou" },
        { "data": "nr_inventar_vechi" },
        { "data": "gestionar" },
        { "data": "observatii" },
        { "data": "optiuni" }
    ],
    "order": [[1, 'asc']]

  });

  // Array to track the ids of the details displayed rows
  var detailRows = [];

  $('#table_echipamente tbody').on( 'click', 'tr td:first-child', function () {
    var tr = $(this).closest('tr');
    var row = dtable.row( tr );
    var idx = $.inArray( tr.attr('id'), detailRows );

    if ( row.child.isShown() ) {
        tr.removeClass( 'details' );
        row.child.hide();

        // Remove from the 'open' array
        detailRows.splice( idx, 1 );
    } else {
        tr.addClass( 'details' );
        row.child( format( row.data() ) ).show();

        // Add to the 'open' array
        if ( idx === -1 ) {
            detailRows.push( tr.attr('id') );
        }
    }
   } );

  // On each draw, loop over the `detailRows` array and show any child rows
  dtable.on( 'draw', function () {
    $.each( detailRows, function ( i, id ) {
        $('#'+id+' td:first-child').trigger( 'click' );
      } );
  } );



  } );

я получаю следующую ошибку, когда я нажимаю на кнопку открытия:

TypeError: dtable.rows не является функцией

Что я делаю неправильно? Я последовал примеру на официальном сайте. Я не могу найти подобную проблему, так что это очень странно.


person Razvan.432    schedule 01.07.2014    source источник
comment
Вы включили dataTable плагин?   -  person Justinas    schedule 01.07.2014
comment
Да, я включил плагин, таблица показывает нормально, проблема в том, что детали строки не работают   -  person Razvan.432    schedule 01.07.2014


Ответы (2)


У меня была такая же проблема, и я только что решил ее с помощью ответа на переполнение стека. Используйте DataTable() вместо dataTable(). Метод row().child() не будет работать с dataTable(). Итак, у вас будет:

var dtable = $('#table_echipamente').DataTable( {})

вместо

var dtable = $('#table_echipamente').dataTable( {})
person Kunbi    schedule 01.07.2014
comment
Да, это оно. Спасибо! - person Razvan.432; 02.07.2014
comment
Эй, у меня была та же проблема, основываясь на приведенном выше комментарии, я попытался изменить «dataTable» на «DataTable». Но теперь выдает ошибку - DataTable.fnDestroy не является функцией - заголовок stackoverflow.com/questions/31906217/ Пожалуйста, помогите! - person Futuregeek; 10.08.2015
comment
Привет, да, это выдаст эту ошибку, потому что в DataTable больше нет этого метода (fnDestroy), вам нужно проверить API, что использовать, не могу вспомнить его навскидку. - person Kunbi; 18.08.2015

У меня была аналогичная проблема. Убедитесь, что версия таблицы данных 1.10 или выше.

person Spider man    schedule 06.09.2016