如何删除由jQuery DataTables插件添加的搜索栏和页脚?


Answers:


486

对于> = 1.10的数据表,请使用:

$('table').dataTable({searching: false, paging: false, info: false});

对于<1.10的数据表,请使用:

$('table').dataTable({bFilter: false, bInfo: false});

或使用纯CSS:

.dataTables_filter, .dataTables_info { display: none; }

7
与@antpaw注释一样好,并且似乎在大多数情况下都可以使用,但是如果每个列都进行了过滤,则它不起作用,例如在此示例中:datatables.net/release-datatables/extras/FixedColumns/…。意识到!
Janis Peisenieks

@JanisPeisenieks示例URL已损坏:datatables.net/extensions/fixedcolumns
antpaw 2015年

7
我不明白为什么会接受此方法,因为它无法回答问题。问题是删除搜索栏和页脚,而不是完全禁用搜索。
user1563544 '18

彻底删除页脚你必须设置paging:falseinfo:false,不只是paging:false
迈克·泰森D3ViD

1
添加到@ user1563544的评论中,有什么方法可以隐藏搜索栏而不禁用功能吗?(除了CSS技巧之外?)
vignz.pie,

88

请访问http://www.datatables.net/examples/basic_init/filter_only.html,以获取要显示/隐藏的功能列表。

您想要的是将“ bFilter”和“ bInfo”设置为false;

$(document).ready(function() {
    $('#example').dataTable( {
        "bPaginate": false,
        "bFilter": false,
        "bInfo": false
                 } );
} );

@Eric谢谢您为我工作,但是我只想向我展示“ bPaginate”,如果我做到了“ bInfo” = false和“ bPaginate” = true,那么我都想展示“ binfo”如何实现,而这两个都在显示
amit

在最新版本的DataTables中{paging: false, info: false}
-josemmo

42

您也无法通过以下设置来绘制页眉或页脚sDomhttp : //datatables.net/usage/options#sDom

'sDom': 't' 

将仅显示表格,不显示页眉或页脚或其他任何内容。

在这里进行了一些讨论:http : //www.datatables.net/forums/discussion/2722/how-to-hide-empty-header-and-footer/p1


2
这应该添加到antpaw的答案中。当传递“ bFilter”:false,“ bInfo”:false时,这有效地隐藏了仍保留的过滤器和信息占位符div。
tibc-dev 2013年

这消除了页脚中的分页。我认为这不是一个好习惯。
Anirudh

1
现在称为“ dom”,您可以使用此选项进行更多控制。参见datatables.net/reference/option/dom
unkreativ

1
这实际上是正确的答案。涉及css和js调整的其他答案都是hack。如果要正确使用DataTables,这就是您的方法。例如,如果要显示除搜索框外的所有其他信息(分页,页面长度等),则可以添加一个dom属性,其值为ltiprsee datatables.net/reference/option/dom
onefootswill



7

一种快速而肮脏的方法是找出页脚的类,并使用jQuery或CSS将其隐藏:

$(".dataTables_info").hide();

4

如果您正在使用themeroller:

.dataTables_wrapper .fg-toolbar { display: none; }

+1谢谢,这为我指明了正确的方向。我也不想隐藏页眉,所以我只想要页脚。ui-corner-bl和ui-corner-br类仅应用于页脚,因此我使用了其中一个来获取页脚包装器... $(“。ui-corner-bl”)。hide( );
凯夫波

4

就像@Scott Stafford所说的那样,sDOM是显示,隐藏或重新定位组成DataTables的元素的最恰当的属性。我认为sDOM现在已过时,此属性的实际补丁为now dom

此属性还允许将某些类或id设置为元素,因此您可以更轻松地进行时尚设计。

在此处查看官方文档:https ://datatables.net/reference/option/dom

此示例仅显示表格:

$('#myTable').DataTable({
    "dom": 't'
});


3

在这里,您可以添加到sDom代码中的元素,顶部搜索栏被隐藏。

$(document).ready(function() {
    $('#example').dataTable( {
"sDom": '<"top">rt<"bottom"flp><"clear">'
 } );
} );

3

只需更改配置即可完成此操作:

$('table').dataTable({
      paging: false, 
      info: false
 });

但是要隐藏空白页脚;这段代码可以达到目的:

 $('table').dataTable({
      paging: false, 
      info: false,

      //add these config to remove empty header
      "bJQueryUI": true,
      "sDom": 'lfrtip'

});

2

提醒一下,您不能DataTable在同一<table>元素上初始化两次。

如果遇到同样的问题,那么你可以设置searchingpaging假,而在你的HTML初始化的DataTable <table>这样

 $('#tbl').DataTable({
    searching: false, 
    paging: false,
    dom: 'Bfrtip',
    buttons: [
       'copy', 'csv', 'excel', 'pdf', 'print'
    ]
 });

1

您可以通过CSS隐藏它们:

#example_info, #example_filter{display: none}

不是“错”,只是不同。这取决于您是要隐藏所有实例(按类,如您的答案),还是要隐藏特定实例(按ID,如我的实例)。
graphicdivine

1

您可以使用sDom属性。代码看起来像这样。

$(document).ready(function() {
    $('#example').dataTable( {
        'sDom': '"top"i'
                 } );
} );

隐藏搜索和寻呼机框。


1

从DataTables 1.10.5开始,现在可以使用HTML5 data- *属性定义初始化选项。

- 数据表文件:HTML5数据- *属性-表选项

因此您可以data-searching="false" data-paging="false" data-info="false"在上指定table。例如,此表将不允许搜索,应用分页或显示信息块:

<table id="example" class="display" width="100%" data-searching="false" data-paging="false" data-info="false">
    <thead>
        <tr>
            <th>Name</th>
            <th data-orderable="false">Avatar</th>
            <th>Start date</th>
            <th>Salary</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Tiger Nixon</td>
            <td><img src="https://www.gravatar.com/avatar/8edcff60cdcca2ad650758fa524d4990?s=64&amp;d=identicon&amp;r=PG" alt="" style="width: 64px; height: 64px; visibility: visible;"></td>
            <td>2011/04/25</td>
            <td>$320,800</td>
        </tr>
        <tr>
            <td>Garrett Winters</td>
            <td><img src="https://www.gravatar.com/avatar/98fe9834dcca2ad650758fa524d4990?s=64&amp;d=identicon&amp;r=PG" alt="" style="width: 64px; height: 64px; visibility: visible;"></td>
            <td>2011/07/25</td>
            <td>$170,750</td>
        </tr>
        ...[ETC]...
    </tbody>
</table>

请参见https://jsfiddle.net/jhfrench/17v94f2s/上的工作示例

这种方法的优势在于,它允许您进行标准的dataTables调用(即$('table.apply_dataTables').DataTable()),同时能够逐表配置dataTables选项。


0

我通过为页脚分配一个id,然后使用css进行样式设置来完成此操作:

    <table border="1" class="dataTable" id="dataTable_${dtoItem.key}" >
     <thead>
        <tr>
            <th></th>

        </tr>
    </thead>
 <tfoot>
    <tr>
            <th id="FooterHidden"></th>
    </tr>
</tfoot>
<tbody>

    <tr>

                <td class="copyableField"></td>

    </tr>
 </tbody>
</table>

然后使用css样式:

#FooterHidden{
   display: none;
}

如上所述,方法对我不起作用。


0

我认为最简单的方法是:

<th data-searchable="false">Column</th>

您只能编辑必须修改的表,而无需更改通用CSS或JS。


0

例如,如果您只想隐藏搜索表单,因为您有列输入过滤器,或者可能是因为已经有CMS搜索表单能够从表中返回结果,那么您要做的就是检查表单并获取其ID- (在撰写本文时,它看起来像[tableid]-table_filter.dataTables_filter)。然后只需[tableid]-table_filter.dataTables_filter{display:none;}保留数据表的所有其他功能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.