假设我有时从服务器获取空数据,我想在DataTables中显示No Data found消息?这怎么可能?
答案 0 :(得分:121)
如果要自定义空表上显示的消息,请使用以下命令:
$('#example').dataTable( {
"oLanguage": {
"sEmptyTable": "My Custom Message On Empty Table"
}
} );
从Datatable 1.10开始,您可以执行以下操作:
$('#example').DataTable( {
"language": {
"emptyTable": "My Custom Message On Empty Table"
}
} );
对于表格的完整的可用数据表自定义消息,请查看以下链接reference/option/language
答案 1 :(得分:8)
dataTables
的更高版本具有以下language
设置(取自here):
"infoEmpty"
- 当表中没有记录时显示"zeroRecords"
- 当没有与过滤匹配的记录时显示e.g。
$('#example').DataTable( {
"language": {
"infoEmpty": "No records available - Got it?",
}
});
注意:由于属性名称不包含任何特殊字符,因此您可以删除引号:
$('#example').DataTable( {
language: {
infoEmpty: "No records available - Got it?",
}
});
答案 2 :(得分:1)
默认情况下,网格视图会照顾,只需传递空数据集。
答案 3 :(得分:1)
值得注意的是,如果要返回服务器端数据 - 即使没有任何数据,也必须提供数据属性。它没有读取recordsTotal
或recordsFiltered
但依赖于数据对象的计数
答案 4 :(得分:1)
游戏后期,但您也可以使用localisation file
DataTable提供.json
本地化文件,其中包含密钥sEmptyTable
和相应的本地化消息。
例如,只需在上面的link下载本地化的json文件,然后像这样初始化Datatable
:
$('#example').dataTable( {
"language": {
"url": "path/to/your/json/file.json"
}
});
恕我直言,这更加清晰,因为您的本地化内容位于外部文件中。
此语法适用于 DataTables 1.10.16 ,我没有在以前的版本上进行测试。
答案 5 :(得分:0)
这只是一个好主意。这样,您可以在正文中添加类,并在表中没有数据时隐藏/显示表。这对我来说很完美。您可以设计自定义找不到记录的错误消息,当表中没有记录时,可以添加类“ no-record”,而当有1条或多于一条记录时,可以删除类并显示数据表
这是jQuery代码。
$('#default_table').DataTable({
// your stuff here
"fnFooterCallback": function (nRow, aaData, iStart, iEnd, aiDisplay) {
if (aiDisplay.length > 0) {
$('body').removeClass('no-record');
}
else {
$('body').addClass('no-record');
}
}
});
这是CSS
.no-record #default_table{display:none;}
答案 6 :(得分:0)
我发现了一样,但最后我找到了答案。我希望这个答案对您有很大帮助。
当数组为空时,您可以像发送空数组一样
if(!empty($result))
{
echo json_encode($result);
}
else
{
echo json_encode(array('data'=>''));
}
谢谢