fnGetData() 无法识别

问题描述 投票:0回答:4

有一个

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>

在运行时没有警报显示,控制台显示“TypeError:dt.fnGetData 不是函数”!

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

那么有什么问题吗?

jquery datatables
4个回答
1
投票

尝试:

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() 函数。您可以在此处找到转换信息。

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

0
投票

当数据表移至版本 1.10+ 时,匈牙利表示法更改为驼峰式大小写表示法 在你的情况下, fngetdata 更改为 row().data() https://datatables.net/reference/api/row().data()

这里是 1.9 到 1.10 升级说明的完整列表

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


0
投票

就我而言,这是因为我在不存在的索引处配置了列。
示例:

const DTable = table.DataTable({
    columnDefs: [
        {
            orderable: false,
            targets: [0]
        },
        {
            orderable: false,
            targets: [2],
            className: 'editable'
        },
        {
            orderable: false,
            targets: [6], // <--- Wrong index, my table only had 5 columns
            className: "no-select"
        }
    ],
})

将目标设置为

targets: [4]
为我解决了这个错误。

© www.soinside.com 2019 - 2024. All rights reserved.