有一个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
那有什么不对?
答案 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的升级说明的完整列表