Bagaimana cara menghapus bilah pencarian dan catatan kaki yang ditambahkan oleh plugin jQuery DataTables?


252

Saya menggunakan jQuery DataTables .

Saya ingin menghapus bilah pencarian dan catatan kaki (menunjukkan berapa banyak baris yang terlihat) yang ditambahkan ke tabel secara default. Saya hanya ingin menggunakan plugin ini untuk menyortir, pada dasarnya. Bisakah ini dilakukan?


Anda dapat menggunakan secara efisien sDomseperti dijelaskan di sini - stackoverflow.com/a/53885264/5729813
Tushar Walzade

Jawaban:


486

Untuk DataTables> = 1,10 , gunakan:

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

Untuk DataTables <1.10 , gunakan:

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

atau menggunakan CSS murni:

.dataTables_filter, .dataTables_info { display: none; }

7
Sebaik komentar @antpaw, dan tampaknya berfungsi dalam kebanyakan kasus, tidak berfungsi jika ada pemfilteran untuk setiap kolom, seperti dalam contoh ini: datatables.net/release-datatables/extras/FixedColumns/… . Waspadalah!
Janis Peisenieks

@JanisPeisenieks Contoh URL rusak: datatables.net/extensions/fixedcolumns
antpaw

7
Saya tidak mengerti mengapa ini diterima, karena tidak menjawab pertanyaan. Masalahnya adalah menghapus bilah pencarian dan footer, tidak menonaktifkan pencarian sepenuhnya.
user1563544

untuk menghapus footer sepenuhnya, Anda harus mengatur paging:false dan info:false, bukan hanyapaging:false
Mike D3ViD Tyson

1
menambahkan komentar @ user1563544, apakah ada cara untuk hanya menyembunyikan bilah pencarian dan TIDAK menonaktifkan fungsionalitas? (selain trik CSS?)
vignz.pie

88

Lihat http://www.datatables.net/examples/basic_init/filter_only.html untuk daftar fitur yang ditampilkan / disembunyikan.

Yang Anda inginkan adalah mengatur "bFilter" dan "bInfo" menjadi false;

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

@Eric terima kasih ini berfungsi untuk saya, tetapi saya ingin menunjukkan "bPaginate" hanya saja saya tidak ingin menunjukkan "binfo" bagaimana saya bisa menerapkannya jika saya melakukan "bInfo" = false dan "bPaginate" = true maka keduanya menunjukkan
amit

Dalam versi terbaru dari DataTables hanya{paging: false, info: false}
josemmo

42

Anda juga tidak bisa menggambar header atau footer sama sekali dengan menetapkan sDom: http://datatables.net/usage/options#sDom

'sDom': 't' 

akan menampilkan tabel HANYA saja, tidak ada header atau footer atau apa pun.

Ini dibahas beberapa di sini: http://www.datatables.net/forums/discussion/2722/how-to-hide-empty-header-and-footer/p1


2
Ini harus ditambahkan ke jawaban antpaw. Ini secara efektif menyembunyikan filter dan info tempat penampung yang masih tersisa ketika melewati "bFilter": false, "bInfo": false.
tibc-dev

Ini menghapus pagination di footer. Saya pikir itu bukan praktik yang baik.
Anirudh

1
Sekarang disebut 'dom' dan Anda dapat mengontrol lebih banyak dengan opsi ini. Lihat datatables.net/reference/option/dom
unkreativ

1
Ini sebenarnya jawaban yang benar. Jawaban lain yang melibatkan tweak css dan js semua hack. Jika Anda ingin menggunakan DataTable dengan benar, ini adalah bagaimana Anda melakukannya. Sebagai contoh, jika Anda ingin menunjukkan semua bit dan potongan (paging, panjang halaman dll) kecuali untuk kotak pencarian, Anda akan menambahkan domproperti dengan nilai ltiprlihat datatables.net/reference/option/dom
onefootswill


10
var table = $("#datatable").DataTable({
   "paging": false,
   "ordering": false,
   "searching": false
});

7

Cara cepat dan kotor adalah mencari tahu kelas dari footer dan menyembunyikannya menggunakan jQuery atau CSS:

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

4

jika Anda menggunakan themeroller:

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

+1 Terima kasih, Ini menunjukkan saya ke arah yang benar. Saya tidak ingin menyembunyikan tajuk juga jadi saya hanya ingin catatan kaki. kelas ui-corner-bl dan ui-corner-br hanya diterapkan pada footer jadi saya menggunakan salah satu untuk mendapatkan pembungkus footer ........ $ (". ui-corner-bl"). hide ( );
Kevbo

4

Seperti yang dikatakan oleh @Scott Stafford sDOMadalah properti yang paling tepat untuk menunjukkan, menyembunyikan, atau memindahkan elemen yang menyusun DataTables. Saya pikir sDOMsekarang sudah ketinggalan zaman, dengan tambalan sebenarnya properti ini sekarangdom .

Properti ini memungkinkan untuk menetapkan beberapa kelas atau id ke suatu elemen juga, sehingga Anda dapat bergaya dengan lebih mudah.

Periksa dokumentasi resmi di sini: https://datatables.net/reference/option/dom

Contoh ini hanya akan menampilkan tabel:

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


3

Di sini Anda dapat menambahkan sDomelemen ke kode Anda, bilah pencarian teratas disembunyikan.

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

3

Ini dapat dilakukan dengan hanya mengubah konfigurasi:

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

Tetapi untuk menyembunyikan catatan kaki yang kosong; kode ini berguna:

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

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

});

2

Hanya pengingat Anda tidak dapat menginisialisasi DataTablepada <table>elemen yang sama dua kali.

Jika Anda mengalami masalah yang sama maka Anda dapat mengatur searchingdan pagingsalah saat menginisialisasi DataTable pada HTML Anda <table>seperti ini

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

1

Anda dapat menyembunyikannya melalui css:

#example_info, #example_filter{display: none}

Bukan 'salah', hanya berbeda. Itu tergantung pada apakah Anda ingin menyembunyikan semua instance (berdasarkan kelas, seperti pada jawaban Anda), atau contoh tertentu (berdasarkan ID, seperti pada milik saya).
graphicdivine

1

Anda dapat menggunakan atribut sDom. Kode terlihat seperti ini.

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

Itu menyembunyikan kotak pencarian dan pager.


1

Pada DataTables 1.10.5 sekarang dimungkinkan untuk menentukan opsi inisialisasi menggunakan atribut data- * HTML5.

- dokumentasi dataTables: HTML5 data- * atribut - opsi tabel

Jadi, Anda dapat menentukan data-searching="false" data-paging="false" data-info="false"di table. Misalnya, tabel ini tidak akan mengizinkan pencarian, menerapkan paging, atau menampilkan blok informasi:

<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>

Lihat contoh yang berfungsi di https://jsfiddle.net/jhfrench/17v94f2s/ .

Keuntungan dari pendekatan ini adalah memungkinkan Anda untuk memiliki panggilan dataTables standar (yaitu, $('table.apply_dataTables').DataTable()) sementara dapat mengkonfigurasi opsi tabel data tabel-demi-tabel.


0

Saya telah melakukan ini dengan menetapkan footer id dan kemudian menata menggunakan 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>

lalu styling menggunakan css:

#FooterHidden{
   display: none;
}

Seperti yang disebutkan di atas cara-cara tidak bekerja untuk saya.


0

Saya pikir cara paling sederhana adalah:

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

Anda dapat mengedit hanya tabel yang harus Anda modifikasi, tanpa mengubah CSS atau JS umum.


0

Jika Anda hanya ingin menyembunyikan form pencarian misalnya karena Anda memiliki filter input kolom atau mungkin karena Anda sudah memiliki form pencarian CMS yang dapat mengembalikan hasil dari tabel maka yang harus Anda lakukan adalah memeriksa form dan mendapatkan id - (pada saat penulisan ini, terlihat seperti itu [tableid]-table_filter.dataTables_filter). Maka cukup lakukan [tableid]-table_filter.dataTables_filter{display:none;}mempertahankan semua fitur lain dari basis data.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.