有一个
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
那么有什么问题吗?
尝试:
console.log(dt.fnGetData($('#list_details_livraison')));
也尝试改变:
var dt = $('#list_details_livraison').DataTable({
至:
var dt = $('#list_details_livraison').dataTable({
1.10.6 fnGetData() 更改为 data() 函数。您可以在此处找到转换信息。
var lengthData= dt
.rows()
.data().length;
当数据表移至版本 1.10+ 时,匈牙利表示法更改为驼峰式大小写表示法 在你的情况下, fngetdata 更改为 row().data() https://datatables.net/reference/api/row().data()
这里是 1.9 到 1.10 升级说明的完整列表
就我而言,这是因为我在不存在的索引处配置了列。
示例:
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]
为我解决了这个错误。