2015-10-20 184 views
0

有一个dataTablefnGetData()无法识别

<table id="list_details_livraison" class="striped cell-hovered border bordered" data-searching="true"> 
    <thead> 
     <tr> 
      <th style="text-align: center;"><?php echo _getText('detaillivraison.entete.article');?></th> 
      <th style="text-align: center;"><?php echo _getText('detaillivraison.entete.qtelivrer');?></th> 
      <th style="text-align: center;"></th> 
     </tr> 
    </thead> 
    <tbody> 
    </tbody> 
</table> 

<script> 

$(document).ready(function() { 

    var dt = $('#list_details_livraison').DataTable({ 
      responsive: true, 
      "oLanguage": { 
       // switch lang here with a PHP variable 
       "sUrl": "<?php echo RP_LANG ?>fr_FR.txt", 
      }, 
      "processing": true, 
      "serverSide": true, 
      ajax: "<?php echo RP_SSP ?>server_processing_details_livraisons.php?livc_code=<?php echo $data[0]['livc_code']; ?>", 
      "aoColumnDefs": 
       [ 
       { 
        "aTargets": [1], 
        "mData": 1, 
        "mRender": function (data, type, full) { 
         return '<div style="text-align:center;">'+ data +'</div>'; 
        } 
       }, 
       { 
        "aTargets": [2], 
        "mData": 2, 
        "mRender": function (data, type, full) { 
           if (isDetailLivraisonValider(data)) { 
            return '<div style="text-align:center;">'+ 
              '<span class="mif-checkmark mif-2x fg-lightGreen"></span>'+ 
              '</div>'; 
           } else { 
            var article = '\''+full [1]+'\''; 
            return '<div style="text-align:center;">'+ 
              '<a href="../../RestaurantLivraison/modifierDetail/'+ data +'" style="margin-right: 8px;"><span class="mif-pencil mif-2x"></span></a>'+ 
              '<a href="#" id="staticDialog" onclick="afficheDlg(\''+ data +'\','+article+')" style="color:red;"><span class="mif-cross mif-2x"></span></a>'+ 
              '</div>'; 
           } 
        } 
       }], 
       "aLengthMenu": [[10, 25,50,100, -1], [10, 25,50,100, "Tout"]] 
     }); 
     var nb = dt.fnGetData().length; 
     alert("number of rows = "+nb); 
}); 
</script> 

在运行时没有警报显示与控制台说:“类型错误:dt.fnGetData不是一个函数”!

如果我用dataTable替换DataTable,那么我得到0作为返回结果,虽然有2行显示!我使用的dataTable版本是1.10.6

那么,怎么了?

+0

我认为你需要阅读:HTTPS ://datatables.net/upgrade/1.10(特别是关于'fn'函数的部分被弃用,以支持它们的新API) – Jamiec

回答

0

尝试:

console.log(dt.fnGetData($('#list_details_livraison'))); 

也尝试改变:

var dt = $('#list_details_livraison').DataTable({ 

到:

var dt = $('#list_details_livraison').dataTable({ 
0

1.10.6 fnGetData()更改为data()函数。你可以找到转换的信息here

var lengthData= dt 
    .rows() 
    .data().length;