在表完全加载jQuery之后,检查数据表是否为空
Check if datatables is empty after table is fully loaded jQuery
在对这个问题进行了一些研究并试图找到解决方案(不幸的是,没有成功)后,我决定最好发布我的问题。我目前在视图中有一个包含资产信息的Datatable,我试图阻止用户继续更改选择字段上的选项,直到将资产添加到资产表中。
下面列出的是document.ready函数下.js文件中的资产数据表代码
assets = $('#assets').dataTable({
sAjaxSource: "http://" + window.location.hostname + "/request/get-request-assets/?id=" + $('#id').val(),
fnDrawCallback: function (oSettings) {
setIncompleteTD();
enableRequestStatus();
},
scrollY: '185px',
scrollCollapse: true,
paging: false,
aaSorting: [[1, 'asc']],
bPaginate: false,
bFilter: false,
bLengthChange: false,
bAutoWidth: false,
bInfo: false,
aoColumns: [
{sWidth: '35px', bSortable: false},
{sWidth: '40px'},
{},
{},
{},
{},
{},
{sWidth: '80px'}
],
language: {
sLoadingRecords: '',
sEmptyTable: 'This request has no asset records.',
sInfoEmpty: ''
}
我发现table.fnSettings().aoData.length===0可以用来检查表是否为空。然而,在遍历代码(通过Chrome调试器)之后,Datatables(至少在我的情况下)似乎在表完全生成之前调用了函数。。。
我在下面有这个代码
assetPresent = (assets.fnSettings().aoData.length===0) ? false : true;
console.log(assetPresent);
在我的document.ready函数中,在$('#assets').dataTable()函数之后(如果这很重要的话)AssetPresent将用作切换状态选择框的标志。不幸的是,在我能够利用它之前。。。
console.log(assetPresent);
似乎总是设置为false,即使表中有明确的记录,并且。。。
assetPresent = (assets.fnSettings().aoData.length===0) ? false : true;
倾向于被忽略。。。
我很想知道table.fnSettings().aoData.length==0是否不是最好的选择。提前谢谢。
你试过table.data().length吗?
你可以试试这个
var table = $('#assets').DataTable();
if ( ! table.data().any() ) {
alert( 'Empty table' );
}
相关文章:
- 用程序搜索JQuery数据表中的文本
- 具有rowGrouping的数据表无法隐藏列
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 将单击事件添加到数据表
- 使用带有参数的数据表sAjaxSource
- 对角度数据表中括号内的数字进行排序
- 动态构建一个数据表与scriplets
- jquery数据表的自定义ko绑定
- 预览数据表单
- 如何在数据表中设置从Ajax响应选中的复选框
- DT数据表背景颜色为黑色,但仍有悬停和选择颜色
- 数据表-隐藏/显示列
- 如何检查数据表是否有任何包含字符串的行并获取它的行索引
- 检查 jQuery 数据表中预先选择的行
- 如何检查数据表行的可见性
- 检查计数数据表是否为空
- 我如何检查数据表是否包含我想要的值,并可能单击链接
- 数据表:添加行并检查添加的行's索引
- 在javascript中使用if-else检查数据表结果
- 在表完全加载jQuery之后,检查数据表是否为空