jquery datatable - 如果行为空,则显示意外的垂直滚动条

时间:2018-04-23 22:43:45

标签: jquery datatables

在某些情况下,我的应用程序会收到一个对象数组,其中所有属性中的记录都具有空值。在这种情况下,整行中的所有单元格都将为空。

在此方案中,数据表显示垂直滚动条。

在下面的示例中,scrolly设置为“30vh”。但是,对于仅2条记录,垂直滚动条正在显示。

有什么方法可以解决这个问题吗?提前谢谢。

var data = [];
        for ( var i=0 ; i<2 ; i++ ) {
        
            var record = ['','','','','',''];
            if (i > 0)
            {
            record = [
            '', 
            'First Name ' + i, 
            'Last Name '+ i, 
            'Postal - ' + i, 
            'ZIP - '+ i, 
            'USA' ]
            }
            data.push( record );
        }
         
        var t = $('#example').DataTable( {
            data:           data,
            deferRender:    true,
            scrollY:        '30vh',
            scrollCollapse: true,
            scroller:       true,
            info:false
        } );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/scroller/1.4.3/js/dataTables.scroller.min.js"></script>

<link href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css" rel="stylesheet"/>
<link href="https://cdn.datatables.net/scroller/1.4.3/css/scroller.dataTables.min.css" rel="stylesheet"/>

<table id="example" class="display nowrap" cellspacing="0" width="100%">
        <thead>
            <tr>
                <th></th>
                <th>ID</th>
                <th>First name</th>
                <th>Last name</th>
                <th>ZIP / Post code</th>
                <th>Country</th>
            </tr>
        </thead>
    </table>

enter image description here

1 个答案:

答案 0 :(得分:0)

是的,正如你所说,空行将弄乱造型 - 他们并不期望在那里。最好的办法是通过预处理返回的数据,在空行加载到表之前过滤掉它们。要执行此操作,请使用xhr事件 - 此处通过一些很好的示例对此进行了解释:https://datatables.net/reference/event/xhr