ฉันจะลบแถบค้นหาและส่วนท้ายที่เพิ่มโดยปลั๊กอิน jQuery DataTables ได้อย่างไร


253

ฉันใช้ jQuery DataTables

ฉันต้องการลบแถบค้นหาและท้ายกระดาษ (แสดงจำนวนแถวที่มองเห็นได้) ที่ถูกเพิ่มลงในตารางตามค่าเริ่มต้น ฉันแค่ต้องการใช้ปลั๊กอินนี้เพื่อเรียงลำดับโดยทั่วไป สามารถทำได้หรือไม่


คุณสามารถใช้อย่างมีประสิทธิภาพsDomตามที่อธิบายไว้ที่นี่ - stackoverflow.com/a/53885264/5729813
Tushar Walzade

คำตอบ:


488

สำหรับDataTables> = 1.10ให้ใช้:

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

สำหรับDataTables <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

7
ฉันไม่เข้าใจว่าทำไมจึงเป็นที่ยอมรับเนื่องจากไม่ตอบคำถาม ปัญหาคือการลบแถบการค้นหาและส่วนท้ายไม่ปิดการใช้งานการค้นหาทั้งหมด
user1563544

เพื่อลบส่วนท้ายที่คุณต้องตั้งค่าpaging:falseและinfo:falseไม่ใช่แค่paging:false
Mike D3ViD Tyson

1
กำลังเพิ่มความคิดเห็นของ @ user1563544 มีวิธีใดเพียงซ่อนแถบค้นหาและไม่ปิดใช้งานฟังก์ชันหรือไม่ (นอกเหนือจากเทคนิค CSS?)
vignz.pie

88

ลองดูhttp://www.datatables.net/examples/basic_init/filter_only.htmlเพื่อดูรายการคุณสมบัติที่จะแสดง / ซ่อน

สิ่งที่คุณต้องการคือการตั้งค่า "bFilter" และ "bInfo" เป็นเท็จ

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

@ อีริคขอบคุณสำหรับมัน แต่ฉันต้องการแสดง "bPaginate" เท่านั้นฉันไม่ต้องการแสดง "binfo" ว่าฉันจะสามารถใช้งานได้อย่างไรถ้าฉันทำ "bInfo" = false และ "bPaginate" = true จากนั้นทั้งสองแสดง
amit

ใน DataTables เวอร์ชันล่าสุดเป็นเพียง{paging: false, info: false}
josemmo

42

นอกจากนี้คุณยังไม่สามารถวาดหัวกระดาษหรือท้ายกระดาษได้ด้วยการตั้งค่าsDom: http://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
tibc-dev

สิ่งนี้จะลบเลขหน้าในท้ายกระดาษ ฉันไม่คิดว่ามันเป็นการปฏิบัติที่ดี
Anirudh

1
ตอนนี้เรียกว่า 'dom' และคุณสามารถควบคุมได้มากขึ้นด้วยตัวเลือกนี้ ดูdatatables.net/reference/option/dom
unkreativ

1
นี่เป็นคำตอบที่ถูกต้องจริงๆ คำตอบอื่น ๆ ที่เกี่ยวข้องกับการปรับแต่ง css และ js คือการแฮ็กทั้งหมด หากคุณต้องการใช้ DataTables อย่างถูกต้องนี่เป็นวิธีการที่คุณทำ ตัวอย่างเช่นถ้าคุณต้องการแสดงบิตและชิ้นส่วนทั้งหมด (เพจจิ้งความยาวหน้า ฯลฯ ) ยกเว้นกล่องค้นหาคุณจะเพิ่มdomคุณสมบัติที่มีค่าltiprดูdatatables.net/reference/option/dom
onefootswill

26

หากคุณใช้ตัวกรองที่กำหนดเองคุณอาจต้องการซ่อนช่องค้นหา แต่ยังต้องการเปิดใช้งานฟังก์ชั่นตัวกรองดังนั้นจึงbFilter: falseไม่ใช่วิธี ใช้แทนค่าเริ่มต้นคือdom: 'lrtp' 'lfrtip'เอกสารประกอบ: https://datatables.net/reference/option/dom



7

วิธีที่รวดเร็วและสกปรกคือการหาคลาสของส่วนท้ายและซ่อนไว้โดยใช้ jQuery หรือ CSS:

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

4

หากคุณกำลังใช้ themeroller:

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

+1 ขอบคุณนี่ทำให้ฉันชี้ไปในทิศทางที่ถูกต้อง ฉันไม่ต้องการซ่อนส่วนหัวเช่นกันดังนั้นฉันแค่ต้องการท้ายกระดาษ คลาส ui-corner-bl และ ui-corner-br ถูกนำไปใช้กับส่วนท้ายเท่านั้นดังนั้นฉันจึงใช้อันใดอันหนึ่งเพื่อรับ wrapper ส่วนท้าย ........ $ (". ui-corner-bl") ซ่อน ( );
Kevbo

4

ดังที่ได้กล่าวโดย @Scott Stafford sDOMเป็นสถานที่ให้บริการที่ดีที่สุดในการแสดงซ่อนหรือย้ายองค์ประกอบที่เขียน DataTables ฉันคิดว่าsDOMมันล้าสมัยไปแล้วด้วยการปะแก้ที่แท้จริงของสถานที่นี้ในขณะนี้domล้าสมัยตอนนี้กับแพทช์ที่เกิดขึ้นจริงแห่งนี้อยู่ในขณะนี้

คุณสมบัตินี้อนุญาตให้ตั้งค่าคลาสหรือ id ให้กับองค์ประกอบด้วยดังนั้นคุณจึงสามารถมีสไตล์ได้ง่ายขึ้น

ตรวจสอบเอกสารประกอบที่นี่: https://datatables.net/reference/option/dom

ตัวอย่างนี้จะแสดงเฉพาะตาราง:

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

4
<script>
$(document).ready(function() {
    $('#nametable').DataTable({
        "bPaginate": false,
        "bFilter": false,
        "bInfo": false
    });
});
</script>

ในตัวสร้าง DataTable ของคุณ

https://datatables.net/forums/discussion/20006/how-to-remove-cross-icon-in-search-box


คำตอบนี้ไม่มีลิงก์ไปยังเอกสารใด ๆ และคุณไม่ได้ให้คำตอบที่ใช้งานได้
elad silver

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>องค์ประกอบเดียวกันสองครั้ง

หากคุณพบปัญหาเดียวกันคุณสามารถตั้งค่าsearchingและpagingเท็จในขณะเริ่มต้น DataTable บน HTML ของคุณ<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- *

- เอกสาร dataTables: คุณลักษณะข้อมูล 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/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;}รักษาคุณสมบัติอื่น ๆ ทั้งหมดของ DataTables

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.