【问题标题】:How to show empty data message in Datatables如何在数据表中显示空数据消息
【发布时间】:2012-12-31 19:07:20
【问题描述】:

假设我有时从服务器获取空数据,我想在 DataTables 中显示 No Data found 消息?这怎么可能?

【问题讨论】:

    标签: jquery json asp.net-mvc datatables


    【解决方案1】:

    如果您想自定义显示在空表上的消息,请使用:

    $('#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

    【讨论】:

    【解决方案2】:

    dataTables 的更高版本具有以下language 设置(取自here):

    • "infoEmpty" - 表中没有记录时显示
    • "zeroRecords" - 没有符合过滤条件的记录时显示

    例如

    $('#example').DataTable( {
        "language": {
            "infoEmpty": "No records available - Got it?",
        }
    });
    

    注意:由于属性名称不包含任何特殊字符,您可以删除引号:

    $('#example').DataTable( {
        language: {
            infoEmpty: "No records available - Got it?",
        }
    });
    

    【讨论】:

    • infoEmpty 实际上是表的信息部分。看到这个jsfiddle
    【解决方案3】:

    游戏迟到了,但您也可以使用localisation file

    DataTable 提供了一个.json 本地化文件,其中包含密钥sEmptyTable 和对应的本地化消息。

    例如,只需在上面的link上下载本地化的json文件,然后像这样初始化你的Datatable

    $('#example').dataTable( {
        "language": {
            "url": "path/to/your/json/file.json"
        }
    });
    

    恕我直言,这更简洁,因为您的本地化内容位于外部文件中。

    此语法适用于 DataTables 1.10.16,我没有在以前的版本上测试过。

    【讨论】:

      【解决方案4】:

      我找到了相同的结果,但最后我找到了答案。我希望这个答案对你有很大帮助。

      当你的数组为空时,你可以像发送空数组一样

      if(!empty($result))
              {
                  echo json_encode($result);
              }
              else
              {
                  echo json_encode(array('data'=>''));
              }
      

      谢谢

      【讨论】:

        【解决方案5】:

        值得注意的是,如果您要返回服务器端数据 - 您必须提供 Data 属性,即使没有。它不会读取recordsTotalrecordsFiltered,而是依赖于数据对象的计数

        【讨论】:

        • 我的数据集返回 data =null recordsTotal = 0 recordsFiltered =0 但那个时候 dataTable 没有显示任何消息。它停留在处理上。我如何显示默认的'未找到结果;数据=空时的消息。请建议
        • 您可以设置 processing:false 我相信作为参数并且您返回的数据必须在结果集中有一个 'Data' 键。
        【解决方案6】:

        这只是一个好主意。即,您可以在正文中添加类,并在表格中没有数据时隐藏/显示表格。这对我来说很完美。可以设计自定义NO Record Found错误提示,当表中没有记录时,可以添加类“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;}
        

        here is Official link

        【讨论】:

          【解决方案7】:

          默认情况下,网格视图会处理,只需传递空数据集。

          【讨论】:

            猜你喜欢
            • 2010-12-31
            • 1970-01-01
            • 1970-01-01
            • 2019-07-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多