fnGetData()无法识别

时间:2015-10-20 15:08:27

标签: jquery datatables

有一个dataTable

<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>

在运行时没有显示警报,控制台说&#34; TypeError:dt.fnGetData不是函数&#34; !

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

那有什么不对?

3 个答案:

答案 0 :(得分:1)

尝试:

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

也尝试改变:

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

为:

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

当数据表移动到1.10+版本时,匈牙利表示法改为驼峰表示法 在您的情况下,fngetdata更改为row()。data() https://datatables.net/reference/api/row().data()

以下是1.9到1.10的升级说明的完整列表

https://datatables.net/upgrade/1.10-convert