简体   繁体   中英

Button Hiding in Datatables

I want to hide groups of columns or select the ones to show or hide using buttons in my datatable. This is my javascript code:

$('#doentes').DataTable({
     "ajax" :  "phpcode.php",

     "columns" : [ 
     {
      "data" : "item1"
 }, {
      "data" : "item2"
 }, {
      "data" : "item3" 
 }, {
      "data" : "item4"
 }, {
      "data" : "item5"   
 }],

 "scrollX": true,

 "orderFixed": [[ 1, "asc"],[ 2, "asc"],[ 3, "asc"]]

}); 

I can't get the hiding buttons to work, i've tried some examples without success, like:

dom: 'Bfrtip',
        buttons: [
            'colvis'
        ]

and

dom: 'Bfrtip',
        buttons: [
            {
                extend: 'colvisGroup',
                text: 'Group 1',
                show: [ 1, 2 ],
                hide: [ 3, 4 ]
            },
            {
                extend: 'colvisGroup',
                text: 'Group 2',
                show: [ 3, 4 ],
                hide: [ 1, 2 ]
            },
            {
                extend: 'colvisGroup',
                text: 'Group 3',
                show: ':hidden'
            }
        ]

How can I apply this to my code?

Edit: my includes:

<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.16/css/dataTables.bootstrap4.min.css">  
          <script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>
          <script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.16/js/dataTables.bootstrap4.min.js"></script> 

No error appear on the console when i try those options, the only difference is that the dropdown with the option to show 10, 25,50 and 100 rows per page dissapear.

I do not see that you are including the needed library for colvis:

<script src="https://cdn.datatables.net/buttons/1.4.2/js/dataTables.buttons.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.4.2/js/buttons.colVis.min.js"></script>

Please note - this property requires the Buttons extension for DataTables. https://datatables.net/reference/button/colvis

As for:

the only difference is that the dropdown with the option to show 10, 25,50 and 100 rows per page dissapear.

For this on the dom option set it like:

dom: 'Blfrtip'

Where 'l' is the length dropdown: https://datatables.net/examples/basic_init/dom.html

So as resume here an example (a really basic one):

 $(document).ready(function() { $('#example').DataTable({ dom: 'Blfrtip', buttons: [ 'colvis' ] }); }); 
 <link href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css" rel="stylesheet" /> <link href="https://cdn.datatables.net/buttons/1.4.2/css/buttons.dataTables.min.css" rel="stylesheet" /> <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/buttons/1.4.2/js/dataTables.buttons.min.js"></script> <script src="https://cdn.datatables.net/buttons/1.4.2/js/buttons.colVis.min.js"></script> <table id="example" class="display" width="100%" cellspacing="0"> <thead> <tr> <th>Name</th> <th>Position</th> <th>Office</th> <th>Age</th> <th>Start date</th> <th>Salary</th> </tr> </thead> <tfoot> <tr> <th>Name</th> <th>Position</th> <th>Office</th> <th>Age</th> <th>Start date</th> <th>Salary</th> </tr> </tfoot> <tbody> <tr> <td>Tiger Nixon</td> <td>System Architect</td> <td>Edinburgh</td> <td>61</td> <td>2011/04/25</td> <td>$320,800</td> </tr> <tr> <td>Garrett Winters</td> <td>Accountant</td> <td>Tokyo</td> <td>63</td> <td>2011/07/25</td> <td>$170,750</td> </tr> <tr> <td>Ashton Cox</td> <td>Junior Technical Author</td> <td>San Francisco</td> <td>66</td> <td>2009/01/12</td> <td>$86,000</td> </tr> <tr> <td>Cedric Kelly</td> <td>Senior Javascript Developer</td> <td>Edinburgh</td> <td>22</td> <td>2012/03/29</td> <td>$433,060</td> </tr> <tr> <td>Airi Satou</td> <td>Accountant</td> <td>Tokyo</td> <td>33</td> <td>2008/11/28</td> <td>$162,700</td> </tr> <tr> <td>Brielle Williamson</td> <td>Integration Specialist</td> <td>New York</td> <td>61</td> <td>2012/12/02</td> <td>$372,000</td> </tr> <tr> <td>Herrod Chandler</td> <td>Sales Assistant</td> <td>San Francisco</td> <td>59</td> <td>2012/08/06</td> <td>$137,500</td> </tr> <tr> <td>Rhona Davidson</td> <td>Integration Specialist</td> <td>Tokyo</td> <td>55</td> <td>2010/10/14</td> <td>$327,900</td> </tr> <tr> <td>Colleen Hurst</td> <td>Javascript Developer</td> <td>San Francisco</td> <td>39</td> <td>2009/09/15</td> <td>$205,500</td> </tr> <tr> <td>Sonya Frost</td> <td>Software Engineer</td> <td>Edinburgh</td> <td>23</td> <td>2008/12/13</td> <td>$103,600</td> </tr> <tr> <td>Jena Gaines</td> <td>Office Manager</td> <td>London</td> <td>30</td> <td>2008/12/19</td> <td>$90,560</td> </tr> <tr> <td>Quinn Flynn</td> <td>Support Lead</td> <td>Edinburgh</td> <td>22</td> <td>2013/03/03</td> <td>$342,000</td> </tr> </tbody> </table> 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM