admin管理员组

文章数量:1399898

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=".10.16/css/dataTables.bootstrap4.min.css">  
          <script type="text/javascript" charset="utf8" src=".10.16/js/jquery.dataTables.min.js"></script>
          <script type="text/javascript" charset="utf8" src=".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 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/1.10.16/css/dataTables.bootstrap4.min.css">  
          <script type="text/javascript" charset="utf8" src="https://cdn.datatables/1.10.16/js/jquery.dataTables.min.js"></script>
          <script type="text/javascript" charset="utf8" src="https://cdn.datatables/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.

Share Improve this question edited Oct 4, 2017 at 13:12 Erick Skrobot asked Oct 3, 2017 at 19:03 Erick SkrobotErick Skrobot 1891 gold badge6 silver badges22 bronze badges 2
  • Can you show which librarys you are including and maybe check out if you have any errors on the console? – William-H-M Commented Oct 3, 2017 at 20:22
  • I updated the question with that info. – Erick Skrobot Commented Oct 4, 2017 at 13:12
Add a ment  | 

1 Answer 1

Reset to default 5

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

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

Please note - this property requires the Buttons extension for DataTables. https://datatables/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/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/1.10.16/css/jquery.dataTables.min.css" rel="stylesheet" />
<link href="https://cdn.datatables/buttons/1.4.2/css/buttons.dataTables.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis./ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.datatables/1.10.16/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables/buttons/1.4.2/js/dataTables.buttons.min.js"></script>
<script src="https://cdn.datatables/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>

本文标签: javascriptButton Hiding in DatatablesStack Overflow