【问题标题】:dataTables .row( ) is not a function servers side processing row detailsdataTables .row( ) 不是功能服务器端处理行详细信息
【发布时间】:2014-08-22 00:54:31
【问题描述】:
 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 不是函数

我做错了什么?我按照官方网站上的示例进行操作。我找不到类似的问题,所以很奇怪。

【问题讨论】:

  • 你是否包含dataTable插件?
  • 是的,我确实包含了插件,表格显示很好,问题是行详细信息不起作用

标签: jquery function datatables row


【解决方案1】:

我遇到了同样的问题,只是通过堆栈溢出的答案解决了它。使用DataTable() 而不是dataTable()。方法row().child() 不适用于dataTable()。所以你将拥有:

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

而不是

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

【讨论】:

  • 是的,就是这样。谢谢!
  • 嘿,我遇到了同样的问题,根据上面的评论,我尝试将'dataTable'更改为'DataTable'。但它现在给出错误 - “DataTable.fnDestroy 不是函数” - stackoverflow.com/questions/31906217/… 请帮助!
  • 嗨,是的,它会给出那个错误,因为 DataTable 没有那个方法(fnDestroy)了,你需要检查 API 使用什么,不记得了。
【解决方案2】:

我有类似的问题。确保数据表版本为1.10或以上

【讨论】:

    猜你喜欢
    • 2017-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    相关资源
    最近更新 更多