Vue Bootstrap Table Sort

Vue Table Sort - Bootstrap 4 & Material Design

Note: This documentation is for an older version of Bootstrap (v.4). A newer version is available for Bootstrap 5. We recommend migrating to the latest version of our product - Material Design for Bootstrap 5.
Go to docs v.5

Vue Bootstrap Sort table is component with sorting functionality which lets you sort the data of the tables according to any specific columns.

To set up table sorting, use one of the options presented below.


Basic example

        
            
      <template>
        <mdb-datatable-2 v-model="data" />
      </template>
      
        
    
        
            
      <script>
        import {
          mdbDatatable2
        } from 'mdbvue';
        export default {
          name: 'DatatablePage',
          components: {
            mdbDatatable2
          },
          data() {
            return {
              data: {
                columns: [{
                    label: 'Name',
                    field: 'name',
                    sort: true
                  },
                  {
                    label: 'Position',
                    field: 'position',
                    sort: true
                  },
                  {
                    label: 'Office',
                    field: 'office',
                    sort: true
                  },
                  {
                    label: 'Age',
                    field: 'age',
                    sort: true
                  },
                  {
                    label: 'Start date',
                    field: 'date',
                    sort: true
                  },
                  {
                    label: 'Salary',
                    field: 'salary',
                    sort: false,
                    format: value => '£' + value
                  }
                ],
                rows: [{
                    name: 'Tiger Nixon',
                    position: 'System Architect',
                    office: 'Edinburgh',
                    age: '61',
                    date: '2011/04/25',
                    salary: '320'
                  },
                  {
                    name: 'Garrett Winters',
                    position: 'Accountant',
                    office: 'Tokyo',
                    age: '63',
                    date: '2011/07/25',
                    salary: '170'
                  },
                  {
                    name: 'Ashton Cox',
                    position: 'Junior Technical Author',
                    office: 'San Francisco',
                    age: '66',
                    date: '2009/01/12',
                    salary: '86'
                  },
                  {
                    name: 'Cedric Kelly',
                    position: 'Senior Javascript Developer',
                    office: 'Edinburgh',
                    age: '22',
                    date: '2012/03/29',
                    salary: '433'
                  },
                  {
                    name: 'Airi Satou',
                    position: 'Accountant',
                    office: 'Tokyo',
                    age: '33',
                    date: '2008/11/28',
                    salary: '162'
                  },
                  {
                    name: 'Brielle Williamson',
                    position: 'Integration Specialist',
                    office: 'New York',
                    age: '61',
                    date: '2012/12/02',
                    salary: '372'
                  },
                  {
                    name: 'Herrod Chandler',
                    position: 'Sales Assistant',
                    office: 'San Francisco',
                    age: '59',
                    date: '2012/08/06',
                    salary: '137'
                  },
                  {
                    name: 'Rhona Davidson',
                    position: 'Integration Specialist',
                    office: 'Tokyo',
                    age: '55',
                    date: '2010/10/14',
                    salary: '327'
                  },
                  {
                    name: 'Colleen Hurst',
                    position: 'Javascript Developer',
                    office: 'San Francisco',
                    age: '39',
                    date: '2009/09/15',
                    salary: '205'
                  },
                  {
                    name: 'Sonya Frost',
                    position: 'Software Engineer',
                    office: 'Edinburgh',
                    age: '23',
                    date: '2008/12/13',
                    salary: '103'
                  },
                  {
                    name: 'Jena Gaines',
                    position: 'Office Manager',
                    office: 'London',
                    age: '30',
                    date: '2008/12/19',
                    salary: '90'
                  },
                  {
                    name: 'Quinn Flynn',
                    position: 'Support Lead',
                    office: 'Edinburgh',
                    age: '22',
                    date: '2013/03/03',
                    salary: '342'
                  },
                  {
                    name: 'Charde Marshall',
                    position: 'Regional Director',
                    office: 'San Francisco',
                    age: '36',
                    date: '2008/10/16',
                    salary: '470'
                  },
                  {
                    name: 'Haley Kennedy',
                    position: 'Senior Marketing Designer',
                    office: 'London',
                    age: '43',
                    date: '2012/12/18',
                    salary: '313'
                  },
                  {
                    name: 'Tatyana Fitzpatrick',
                    position: 'Regional Director',
                    office: 'London',
                    age: '19',
                    date: '2010/03/17',
                    salary: '385'
                  },
                  {
                    name: 'Michael Silva',
                    position: 'Marketing Designer',
                    office: 'London',
                    age: '66',
                    date: '2012/11/27',
                    salary: '198'
                  },
                  {
                    name: 'Paul Byrd',
                    position: 'Chief Financial Officer (CFO)',
                    office: 'New York',
                    age: '64',
                    date: '2010/06/09',
                    salary: '725'
                  },
                  {
                    name: 'Gloria Little',
                    position: 'Systems Administrator',
                    office: 'New York',
                    age: '59',
                    date: '2009/04/10',
                    salary: '237'
                  },
                  {
                    name: 'Bradley Greer',
                    position: 'Software Engineer',
                    office: 'London',
                    age: '41',
                    date: '2012/10/13',
                    salary: '132'
                  },
                  {
                    name: 'Dai Rios',
                    position: 'Personnel Lead',
                    office: 'Edinburgh',
                    age: '35',
                    date: '2012/09/26',
                    salary: '217'
                  },
                  {
                    name: 'Jenette Caldwell',
                    position: 'Development Lead',
                    office: 'New York',
                    age: '30',
                    date: '2011/09/03',
                    salary: '345'
                  },
                  {
                    name: 'Yuri Berry',
                    position: 'Chief Marketing Officer (CMO)',
                    office: 'New York',
                    age: '40',
                    date: '2009/06/25',
                    salary: '675'
                  },
                  {
                    name: 'Caesar Vance',
                    position: 'Pre-Sales Support',
                    office: 'New York',
                    age: '21',
                    date: '2011/12/12',
                    salary: '106'
                  },
                  {
                    name: 'Doris Wilder',
                    position: 'Sales Assistant',
                    office: 'Sidney',
                    age: '23',
                    date: '2010/09/20',
                    salary: '85'
                  },
                  {
                    name: 'Angelica Ramos',
                    position: 'Chief Executive Officer (CEO)',
                    office: 'London',
                    age: '47',
                    date: '2009/10/09',
                    salary: '1'
                  },
                  {
                    name: 'Gavin Joyce',
                    position: 'Developer',
                    office: 'Edinburgh',
                    age: '42',
                    date: '2010/12/22',
                    salary: '92'
                  },
                  {
                    name: 'Jennifer Chang',
                    position: 'Regional Director',
                    office: 'Singapore',
                    age: '28',
                    date: '2010/11/14',
                    salary: '357'
                  },
                  {
                    name: 'Brenden Wagner',
                    position: 'Software Engineer',
                    office: 'San Francisco',
                    age: '28',
                    date: '2011/06/07',
                    salary: '206'
                  },
                  {
                    name: 'Fiona Green',
                    position: 'Chief Operating Officer (COO)',
                    office: 'San Francisco',
                    age: '48',
                    date: '2010/03/11',
                    salary: '850'
                  },
                  {
                    name: 'Shou Itou',
                    position: 'Regional Marketing',
                    office: 'Tokyo',
                    age: '20',
                    date: '2011/08/14',
                    salary: '163'
                  },
                  {
                    name: 'Michelle House',
                    position: 'Integration Specialist',
                    office: 'Sidney',
                    age: '37',
                    date: '2011/06/02',
                    salary: '95'
                  },
                  {
                    name: 'Suki Burks',
                    position: 'Developer',
                    office: 'London',
                    age: '53',
                    date: '2009/10/22',
                    salary: '114'
                  },
                  {
                    name: 'Prescott Bartlett',
                    position: 'Technical Author',
                    office: 'London',
                    age: '27',
                    date: '2011/05/07',
                    salary: '145'
                  },
                  {
                    name: 'Gavin Cortez',
                    position: 'Team Leader',
                    office: 'San Francisco',
                    age: '22',
                    date: '2008/10/26',
                    salary: '235'
                  },
                  {
                    name: 'Martena Mccray',
                    position: 'Post-Sales support',
                    office: 'Edinburgh',
                    age: '46',
                    date: '2011/03/09',
                    salary: '324'
                  },
                  {
                    name: 'Unity Butler',
                    position: 'Marketing Designer',
                    office: 'San Francisco',
                    age: '47',
                    date: '2009/12/09',
                    salary: '85'
                  },
                  {
                    name: 'Howard Hatfield',
                    position: 'Office Manager',
                    office: 'San Francisco',
                    age: '51',
                    date: '2008/12/16',
                    salary: '164'
                  },
                  {
                    name: 'Hope Fuentes',
                    position: 'Secretary',
                    office: 'San Francisco',
                    age: '41',
                    date: '2010/02/12',
                    salary: '109'
                  },
                  {
                    name: 'Vivian Harrell',
                    position: 'Financial Controller',
                    office: 'San Francisco',
                    age: '62',
                    date: '2009/02/14',
                    salary: '452'
                  },
                  {
                    name: 'Timothy Mooney',
                    position: 'Office Manager',
                    office: 'London',
                    age: '37',
                    date: '2008/12/11',
                    salary: '136'
                  },
                  {
                    name: 'Jackson Bradshaw',
                    position: 'Director',
                    office: 'New York',
                    age: '65',
                    date: '2008/09/26',
                    salary: '645'
                  },
                  {
                    name: 'Olivia Liang',
                    position: 'Support Engineer',
                    office: 'Singapore',
                    age: '64',
                    date: '2011/02/03',
                    salary: '234'
                  },
                  {
                    name: 'Bruno Nash',
                    position: 'Software Engineer',
                    office: 'London',
                    age: '38',
                    date: '2011/05/03',
                    salary: '163'
                  },
                  {
                    name: 'Sakura Yamamoto',
                    position: 'Support Engineer',
                    office: 'Tokyo',
                    age: '37',
                    date: '2009/08/19',
                    salary: '139'
                  },
                  {
                    name: 'Thor Walton',
                    position: 'Developer',
                    office: 'New York',
                    age: '61',
                    date: '2013/08/11',
                    salary: '98'
                  },
                  {
                    name: 'Finn Camacho',
                    position: 'Support Engineer',
                    office: 'San Francisco',
                    age: '47',
                    date: '2009/07/07',
                    salary: '87'
                  },
                  {
                    name: 'Serge Baldwin',
                    position: 'Data Coordinator',
                    office: 'Singapore',
                    age: '64',
                    date: '2012/04/09',
                    salary: '138'
                  },
                  {
                    name: 'Zenaida Frank',
                    position: 'Software Engineer',
                    office: 'New York',
                    age: '63',
                    date: '2010/01/04',
                    salary: '125'
                  },
                  {
                    name: 'Zorita Serrano',
                    position: 'Software Engineer',
                    office: 'San Francisco',
                    age: '56',
                    date: '2012/06/01',
                    salary: '115'
                  },
                  {
                    name: 'Jennifer Acosta',
                    position: 'Junior Javascript Developer',
                    office: 'Edinburgh',
                    age: '43',
                    date: '2013/02/01',
                    salary: '75'
                  },
                  {
                    name: 'Cara Stevens',
                    position: 'Sales Assistant',
                    office: 'New York',
                    age: '46',
                    date: '2011/12/06',
                    salary: '145'
                  },
                  {
                    name: 'Hermione Butler',
                    position: 'Regional Director',
                    office: 'London',
                    age: '47',
                    date: '2011/03/21',
                    salary: '356'
                  },
                  {
                    name: 'Lael Greer',
                    position: 'Systems Administrator',
                    office: 'London',
                    age: '21',
                    date: '2009/02/27',
                    salary: '103'
                  },
                  {
                    name: 'Jonas Alexander',
                    position: 'Developer',
                    office: 'San Francisco',
                    age: '30',
                    date: '2010/07/14',
                    salary: '86'
                  },
                  {
                    name: 'Shad Decker',
                    position: 'Regional Director',
                    office: 'Edinburgh',
                    age: '51',
                    date: '2008/11/13',
                    salary: '183'
                  },
                  {
                    name: 'Michael Bruce',
                    position: 'Javascript Developer',
                    office: 'Singapore',
                    age: '29',
                    date: '2011/06/27',
                    salary: '183'
                  },
                  {
                    name: 'Donna Snider',
                    position: 'Customer Support',
                    office: 'New York',
                    age: '27',
                    date: '2011/01/25',
                    salary: '112'
                  }
                ]
              }
            }
          }
        }
      </script>
      
        
    

Enable / disable sorting

Sorting is enabled by default, so if you want to have it you don't need to do anything.

Disabling features that you don't wish to use for a particular table is easily done by setting a property :sorting="false" in the mdb-datatable component. The full list of available options is available in the DataTables reference.

        
            
    <template>
      <mdb-datatable :data="data" striped bordered :sorting="false" />
    </template>
    
        
    
        
            
    <script>
      import {
        mdbDatatable
      } from 'mdbvue';
      export default {
        name: 'DatatablePage',
        components: {
          mdbDatatable
        },
        data() {
          return {
            data: {
              columns: [{
                  label: 'Name',
                  field: 'name',
                  sort: 'asc'
                },
                {
                  label: 'Position',
                  field: 'position',
                  sort: 'asc'
                },
                {
                  label: 'Office',
                  field: 'office',
                  sort: 'asc'
                },
                {
                  label: 'Age',
                  field: 'age',
                  sort: 'asc'
                },
                {
                  label: 'Start date',
                  field: 'date',
                  sort: 'asc'
                },
                {
                  label: 'Salary',
                  field: 'salary',
                  sort: 'asc'
                }
              ],
              rows: [{
                  name: 'Tiger Nixon',
                  position: 'System Architect',
                  office: 'Edinburgh',
                  age: '61',
                  date: '2011/04/25',
                  salary: '$320'
                },
                {
                  name: 'Garrett Winters',
                  position: 'Accountant',
                  office: 'Tokyo',
                  age: '63',
                  date: '2011/07/25',
                  salary: '$170'
                },
                {
                  name: 'Ashton Cox',
                  position: 'Junior Technical Author',
                  office: 'San Francisco',
                  age: '66',
                  date: '2009/01/12',
                  salary: '$86'
                },
                {
                  name: 'Cedric Kelly',
                  position: 'Senior Javascript Developer',
                  office: 'Edinburgh',
                  age: '22',
                  date: '2012/03/29',
                  salary: '$433'
                },
                {
                  name: 'Airi Satou',
                  position: 'Accountant',
                  office: 'Tokyo',
                  age: '33',
                  date: '2008/11/28',
                  salary: '$162'
                },
                {
                  name: 'Brielle Williamson',
                  position: 'Integration Specialist',
                  office: 'New York',
                  age: '61',
                  date: '2012/12/02',
                  salary: '$372'
                },
                {
                  name: 'Herrod Chandler',
                  position: 'Sales Assistant',
                  office: 'San Francisco',
                  age: '59',
                  date: '2012/08/06',
                  salary: '$137'
                },
                {
                  name: 'Rhona Davidson',
                  position: 'Integration Specialist',
                  office: 'Tokyo',
                  age: '55',
                  date: '2010/10/14',
                  salary: '$327'
                },
                {
                  name: 'Colleen Hurst',
                  position: 'Javascript Developer',
                  office: 'San Francisco',
                  age: '39',
                  date: '2009/09/15',
                  salary: '$205'
                },
                {
                  name: 'Sonya Frost',
                  position: 'Software Engineer',
                  office: 'Edinburgh',
                  age: '23',
                  date: '2008/12/13',
                  salary: '$103'
                },
                {
                  name: 'Jena Gaines',
                  position: 'Office Manager',
                  office: 'London',
                  age: '30',
                  date: '2008/12/19',
                  salary: '$90'
                },
                {
                  name: 'Quinn Flynn',
                  position: 'Support Lead',
                  office: 'Edinburgh',
                  age: '22',
                  date: '2013/03/03',
                  salary: '$342'
                },
                {
                  name: 'Charde Marshall',
                  position: 'Regional Director',
                  office: 'San Francisco',
                  age: '36',
                  date: '2008/10/16',
                  salary: '$470'
                },
                {
                  name: 'Haley Kennedy',
                  position: 'Senior Marketing Designer',
                  office: 'London',
                  age: '43',
                  date: '2012/12/18',
                  salary: '$313'
                },
                {
                  name: 'Tatyana Fitzpatrick',
                  position: 'Regional Director',
                  office: 'London',
                  age: '19',
                  date: '2010/03/17',
                  salary: '$385'
                },
                {
                  name: 'Michael Silva',
                  position: 'Marketing Designer',
                  office: 'London',
                  age: '66',
                  date: '2012/11/27',
                  salary: '$198'
                },
                {
                  name: 'Paul Byrd',
                  position: 'Chief Financial Officer (CFO)',
                  office: 'New York',
                  age: '64',
                  date: '2010/06/09',
                  salary: '$725'
                },
                {
                  name: 'Gloria Little',
                  position: 'Systems Administrator',
                  office: 'New York',
                  age: '59',
                  date: '2009/04/10',
                  salary: '$237'
                },
                {
                  name: 'Bradley Greer',
                  position: 'Software Engineer',
                  office: 'London',
                  age: '41',
                  date: '2012/10/13',
                  salary: '$132'
                },
                {
                  name: 'Dai Rios',
                  position: 'Personnel Lead',
                  office: 'Edinburgh',
                  age: '35',
                  date: '2012/09/26',
                  salary: '$217'
                },
                {
                  name: 'Jenette Caldwell',
                  position: 'Development Lead',
                  office: 'New York',
                  age: '30',
                  date: '2011/09/03',
                  salary: '$345'
                },
                {
                  name: 'Yuri Berry',
                  position: 'Chief Marketing Officer (CMO)',
                  office: 'New York',
                  age: '40',
                  date: '2009/06/25',
                  salary: '$675'
                },
                {
                  name: 'Caesar Vance',
                  position: 'Pre-Sales Support',
                  office: 'New York',
                  age: '21',
                  date: '2011/12/12',
                  salary: '$106'
                },
                {
                  name: 'Doris Wilder',
                  position: 'Sales Assistant',
                  office: 'Sidney',
                  age: '23',
                  date: '2010/09/20',
                  salary: '$85'
                },
                {
                  name: 'Angelica Ramos',
                  position: 'Chief Executive Officer (CEO)',
                  office: 'London',
                  age: '47',
                  date: '2009/10/09',
                  salary: '$1'
                },
                {
                  name: 'Gavin Joyce',
                  position: 'Developer',
                  office: 'Edinburgh',
                  age: '42',
                  date: '2010/12/22',
                  salary: '$92'
                },
                {
                  name: 'Jennifer Chang',
                  position: 'Regional Director',
                  office: 'Singapore',
                  age: '28',
                  date: '2010/11/14',
                  salary: '$357'
                },
                {
                  name: 'Brenden Wagner',
                  position: 'Software Engineer',
                  office: 'San Francisco',
                  age: '28',
                  date: '2011/06/07',
                  salary: '$206'
                },
                {
                  name: 'Fiona Green',
                  position: 'Chief Operating Officer (COO)',
                  office: 'San Francisco',
                  age: '48',
                  date: '2010/03/11',
                  salary: '$850'
                },
                {
                  name: 'Shou Itou',
                  position: 'Regional Marketing',
                  office: 'Tokyo',
                  age: '20',
                  date: '2011/08/14',
                  salary: '$163'
                },
                {
                  name: 'Michelle House',
                  position: 'Integration Specialist',
                  office: 'Sidney',
                  age: '37',
                  date: '2011/06/02',
                  salary: '$95'
                },
                {
                  name: 'Suki Burks',
                  position: 'Developer',
                  office: 'London',
                  age: '53',
                  date: '2009/10/22',
                  salary: '$114'
                },
                {
                  name: 'Prescott Bartlett',
                  position: 'Technical Author',
                  office: 'London',
                  age: '27',
                  date: '2011/05/07',
                  salary: '$145'
                },
                {
                  name: 'Gavin Cortez',
                  position: 'Team Leader',
                  office: 'San Francisco',
                  age: '22',
                  date: '2008/10/26',
                  salary: '$235'
                },
                {
                  name: 'Martena Mccray',
                  position: 'Post-Sales support',
                  office: 'Edinburgh',
                  age: '46',
                  date: '2011/03/09',
                  salary: '$324'
                },
                {
                  name: 'Unity Butler',
                  position: 'Marketing Designer',
                  office: 'San Francisco',
                  age: '47',
                  date: '2009/12/09',
                  salary: '$85'
                },
                {
                  name: 'Howard Hatfield',
                  position: 'Office Manager',
                  office: 'San Francisco',
                  age: '51',
                  date: '2008/12/16',
                  salary: '$164'
                },
                {
                  name: 'Hope Fuentes',
                  position: 'Secretary',
                  office: 'San Francisco',
                  age: '41',
                  date: '2010/02/12',
                  salary: '$109'
                },
                {
                  name: 'Vivian Harrell',
                  position: 'Financial Controller',
                  office: 'San Francisco',
                  age: '62',
                  date: '2009/02/14',
                  salary: '$452'
                },
                {
                  name: 'Timothy Mooney',
                  position: 'Office Manager',
                  office: 'London',
                  age: '37',
                  date: '2008/12/11',
                  salary: '$136'
                },
                {
                  name: 'Jackson Bradshaw',
                  position: 'Director',
                  office: 'New York',
                  age: '65',
                  date: '2008/09/26',
                  salary: '$645'
                },
                {
                  name: 'Olivia Liang',
                  position: 'Support Engineer',
                  office: 'Singapore',
                  age: '64',
                  date: '2011/02/03',
                  salary: '$234'
                },
                {
                  name: 'Bruno Nash',
                  position: 'Software Engineer',
                  office: 'London',
                  age: '38',
                  date: '2011/05/03',
                  salary: '$163'
                },
                {
                  name: 'Sakura Yamamoto',
                  position: 'Support Engineer',
                  office: 'Tokyo',
                  age: '37',
                  date: '2009/08/19',
                  salary: '$139'
                },
                {
                  name: 'Thor Walton',
                  position: 'Developer',
                  office: 'New York',
                  age: '61',
                  date: '2013/08/11',
                  salary: '$98'
                },
                {
                  name: 'Finn Camacho',
                  position: 'Support Engineer',
                  office: 'San Francisco',
                  age: '47',
                  date: '2009/07/07',
                  salary: '$87'
                },
                {
                  name: 'Serge Baldwin',
                  position: 'Data Coordinator',
                  office: 'Singapore',
                  age: '64',
                  date: '2012/04/09',
                  salary: '$138'
                },
                {
                  name: 'Zenaida Frank',
                  position: 'Software Engineer',
                  office: 'New York',
                  age: '63',
                  date: '2010/01/04',
                  salary: '$125'
                },
                {
                  name: 'Zorita Serrano',
                  position: 'Software Engineer',
                  office: 'San Francisco',
                  age: '56',
                  date: '2012/06/01',
                  salary: '$115'
                },
                {
                  name: 'Jennifer Acosta',
                  position: 'Junior Javascript Developer',
                  office: 'Edinburgh',
                  age: '43',
                  date: '2013/02/01',
                  salary: '$75'
                },
                {
                  name: 'Cara Stevens',
                  position: 'Sales Assistant',
                  office: 'New York',
                  age: '46',
                  date: '2011/12/06',
                  salary: '$145'
                },
                {
                  name: 'Hermione Butler',
                  position: 'Regional Director',
                  office: 'London',
                  age: '47',
                  date: '2011/03/21',
                  salary: '$356'
                },
                {
                  name: 'Lael Greer',
                  position: 'Systems Administrator',
                  office: 'London',
                  age: '21',
                  date: '2009/02/27',
                  salary: '$103'
                },
                {
                  name: 'Jonas Alexander',
                  position: 'Developer',
                  office: 'San Francisco',
                  age: '30',
                  date: '2010/07/14',
                  salary: '$86'
                },
                {
                  name: 'Shad Decker',
                  position: 'Regional Director',
                  office: 'Edinburgh',
                  age: '51',
                  date: '2008/11/13',
                  salary: '$183'
                },
                {
                  name: 'Michael Bruce',
                  position: 'Javascript Developer',
                  office: 'Singapore',
                  age: '29',
                  date: '2011/06/27',
                  salary: '$183'
                },
                {
                  name: 'Donna Snider',
                  position: 'Customer Support',
                  office: 'New York',
                  age: '27',
                  date: '2011/01/25',
                  salary: '$112'
                }
              ]
            }
          }
        }
      }
    </script>
    
        
    

Advanced table options

For advanced options of the tables have a look at specific documentation pages listed below.

Table sort

This functionality lets you sort the data of the tables according to any specific columns.

Table scroll

If your table is too long or too wide you can limit its size and enable scroll functionality.

Table editable

Table editable allows you to edit existing data within the table and add new data to the table.

Vue Bootstrap Datatables - API

This section present detailed information about Datatables usage, properties and customization. Dive into API references to find see all available props and methods.


Imports

To start working with Datatables you need just one component.
mdbDatatable contains huge amount of options and custom styles (corresponding to static tables).

        
            
    <script>
      import {
        mdbDatatable2
      } from 'mdbvue';
    </script>
    
        
    

Usage

There are two ways to bind your data into Datatable
You can build an object of structured data, or bind the link to external API (Json from API must have the same structure as object described below).

        
            
    <template>
      <mdb-datatable :data="data" striped bordered />
    </template>
    <script>
      import {
        mdbDatatable
      } from 'mdbvue';
      export default {
        name: 'DatatablePage',
        components: {
          mdbDatatable
        },
        data() {
          return {
            data: {
              columns: [{
                  label: 'Name',
                  field: 'name',
                  sort: 'asc'
                },
                {
                  label: 'Position',
                  field: 'position',
                  sort: 'asc'
                },
                {
                  label: 'Office',
                  field: 'office',
                  sort: 'asc'
                },
                {
                  label: 'Age',
                  field: 'age',
                  sort: 'asc'
                },
                {
                  label: 'Start date',
                  field: 'date',
                  sort: 'asc'
                },
                {
                  label: 'Salary',
                  field: 'salary',
                  sort: 'asc'
                }
              ],
              rows: [{
                  name: 'Tiger Nixon',
                  position: 'System Architect',
                  office: 'Edinburgh',
                  age: '61',
                  date: '2011/04/25',
                  salary: '$320'
                },
                {
                  name: 'Garrett Winters',
                  position: 'Accountant',
                  office: 'Tokyo',
                  age: '63',
                  date: '2011/07/25',
                  salary: '$170'
                },
                {
                  name: 'Ashton Cox',
                  position: 'Junior Technical Author',
                  office: 'San Francisco',
                  age: '66',
                  date: '2009/01/12',
                  salary: '$86'
                },
                {
                  name: 'Cedric Kelly',
                  position: 'Senior Javascript Developer',
                  office: 'Edinburgh',
                  age: '22',
                  date: '2012/03/29',
                  salary: '$433'
                },
                {
                  name: 'Airi Satou',
                  position: 'Accountant',
                  office: 'Tokyo',
                  age: '33',
                  date: '2008/11/28',
                  salary: '$162'
                },
                {
                  name: 'Brielle Williamson',
                  position: 'Integration Specialist',
                  office: 'New York',
                  age: '61',
                  date: '2012/12/02',
                  salary: '$372'
                },
                {
                  name: 'Herrod Chandler',
                  position: 'Sales Assistant',
                  office: 'San Francisco',
                  age: '59',
                  date: '2012/08/06',
                  salary: '$137'
                },
                {
                  name: 'Rhona Davidson',
                  position: 'Integration Specialist',
                  office: 'Tokyo',
                  age: '55',
                  date: '2010/10/14',
                  salary: '$327'
                },
                {
                  name: 'Colleen Hurst',
                  position: 'Javascript Developer',
                  office: 'San Francisco',
                  age: '39',
                  date: '2009/09/15',
                  salary: '$205'
                },
                {
                  name: 'Sonya Frost',
                  position: 'Software Engineer',
                  office: 'Edinburgh',
                  age: '23',
                  date: '2008/12/13',
                  salary: '$103'
                },
                {
                  name: 'Jena Gaines',
                  position: 'Office Manager',
                  office: 'London',
                  age: '30',
                  date: '2008/12/19',
                  salary: '$90'
                },
                {
                  name: 'Quinn Flynn',
                  position: 'Support Lead',
                  office: 'Edinburgh',
                  age: '22',
                  date: '2013/03/03',
                  salary: '$342'
                },
                {
                  name: 'Charde Marshall',
                  position: 'Regional Director',
                  office: 'San Francisco',
                  age: '36',
                  date: '2008/10/16',
                  salary: '$470'
                },
                {
                  name: 'Haley Kennedy',
                  position: 'Senior Marketing Designer',
                  office: 'London',
                  age: '43',
                  date: '2012/12/18',
                  salary: '$313'
                },
                {
                  name: 'Tatyana Fitzpatrick',
                  position: 'Regional Director',
                  office: 'London',
                  age: '19',
                  date: '2010/03/17',
                  salary: '$385'
                },
                {
                  name: 'Michael Silva',
                  position: 'Marketing Designer',
                  office: 'London',
                  age: '66',
                  date: '2012/11/27',
                  salary: '$198'
                },
                {
                  name: 'Paul Byrd',
                  position: 'Chief Financial Officer (CFO)',
                  office: 'New York',
                  age: '64',
                  date: '2010/06/09',
                  salary: '$725'
                },
                {
                  name: 'Gloria Little',
                  position: 'Systems Administrator',
                  office: 'New York',
                  age: '59',
                  date: '2009/04/10',
                  salary: '$237'
                },
                {
                  name: 'Bradley Greer',
                  position: 'Software Engineer',
                  office: 'London',
                  age: '41',
                  date: '2012/10/13',
                  salary: '$132'
                },
                {
                  name: 'Dai Rios',
                  position: 'Personnel Lead',
                  office: 'Edinburgh',
                  age: '35',
                  date: '2012/09/26',
                  salary: '$217'
                },
                {
                  name: 'Jenette Caldwell',
                  position: 'Development Lead',
                  office: 'New York',
                  age: '30',
                  date: '2011/09/03',
                  salary: '$345'
                },
                {
                  name: 'Yuri Berry',
                  position: 'Chief Marketing Officer (CMO)',
                  office: 'New York',
                  age: '40',
                  date: '2009/06/25',
                  salary: '$675'
                },
                {
                  name: 'Caesar Vance',
                  position: 'Pre-Sales Support',
                  office: 'New York',
                  age: '21',
                  date: '2011/12/12',
                  salary: '$106'
                },
                {
                  name: 'Doris Wilder',
                  position: 'Sales Assistant',
                  office: 'Sidney',
                  age: '23',
                  date: '2010/09/20',
                  salary: '$85'
                },
                {
                  name: 'Angelica Ramos',
                  position: 'Chief Executive Officer (CEO)',
                  office: 'London',
                  age: '47',
                  date: '2009/10/09',
                  salary: '$1'
                },
                {
                  name: 'Gavin Joyce',
                  position: 'Developer',
                  office: 'Edinburgh',
                  age: '42',
                  date: '2010/12/22',
                  salary: '$92'
                },
                {
                  name: 'Jennifer Chang',
                  position: 'Regional Director',
                  office: 'Singapore',
                  age: '28',
                  date: '2010/11/14',
                  salary: '$357'
                },
                {
                  name: 'Brenden Wagner',
                  position: 'Software Engineer',
                  office: 'San Francisco',
                  age: '28',
                  date: '2011/06/07',
                  salary: '$206'
                },
                {
                  name: 'Fiona Green',
                  position: 'Chief Operating Officer (COO)',
                  office: 'San Francisco',
                  age: '48',
                  date: '2010/03/11',
                  salary: '$850'
                },
                {
                  name: 'Shou Itou',
                  position: 'Regional Marketing',
                  office: 'Tokyo',
                  age: '20',
                  date: '2011/08/14',
                  salary: '$163'
                },
                {
                  name: 'Michelle House',
                  position: 'Integration Specialist',
                  office: 'Sidney',
                  age: '37',
                  date: '2011/06/02',
                  salary: '$95'
                },
                {
                  name: 'Suki Burks',
                  position: 'Developer',
                  office: 'London',
                  age: '53',
                  date: '2009/10/22',
                  salary: '$114'
                },
                {
                  name: 'Prescott Bartlett',
                  position: 'Technical Author',
                  office: 'London',
                  age: '27',
                  date: '2011/05/07',
                  salary: '$145'
                },
                {
                  name: 'Gavin Cortez',
                  position: 'Team Leader',
                  office: 'San Francisco',
                  age: '22',
                  date: '2008/10/26',
                  salary: '$235'
                },
                {
                  name: 'Martena Mccray',
                  position: 'Post-Sales support',
                  office: 'Edinburgh',
                  age: '46',
                  date: '2011/03/09',
                  salary: '$324'
                },
                {
                  name: 'Unity Butler',
                  position: 'Marketing Designer',
                  office: 'San Francisco',
                  age: '47',
                  date: '2009/12/09',
                  salary: '$85'
                },
                {
                  name: 'Howard Hatfield',
                  position: 'Office Manager',
                  office: 'San Francisco',
                  age: '51',
                  date: '2008/12/16',
                  salary: '$164'
                },
                {
                  name: 'Hope Fuentes',
                  position: 'Secretary',
                  office: 'San Francisco',
                  age: '41',
                  date: '2010/02/12',
                  salary: '$109'
                },
                {
                  name: 'Vivian Harrell',
                  position: 'Financial Controller',
                  office: 'San Francisco',
                  age: '62',
                  date: '2009/02/14',
                  salary: '$452'
                },
                {
                  name: 'Timothy Mooney',
                  position: 'Office Manager',
                  office: 'London',
                  age: '37',
                  date: '2008/12/11',
                  salary: '$136'
                },
                {
                  name: 'Jackson Bradshaw',
                  position: 'Director',
                  office: 'New York',
                  age: '65',
                  date: '2008/09/26',
                  salary: '$645'
                },
                {
                  name: 'Olivia Liang',
                  position: 'Support Engineer',
                  office: 'Singapore',
                  age: '64',
                  date: '2011/02/03',
                  salary: '$234'
                },
                {
                  name: 'Bruno Nash',
                  position: 'Software Engineer',
                  office: 'London',
                  age: '38',
                  date: '2011/05/03',
                  salary: '$163'
                },
                {
                  name: 'Sakura Yamamoto',
                  position: 'Support Engineer',
                  office: 'Tokyo',
                  age: '37',
                  date: '2009/08/19',
                  salary: '$139'
                },
                {
                  name: 'Thor Walton',
                  position: 'Developer',
                  office: 'New York',
                  age: '61',
                  date: '2013/08/11',
                  salary: '$98'
                },
                {
                  name: 'Finn Camacho',
                  position: 'Support Engineer',
                  office: 'San Francisco',
                  age: '47',
                  date: '2009/07/07',
                  salary: '$87'
                },
                {
                  name: 'Serge Baldwin',
                  position: 'Data Coordinator',
                  office: 'Singapore',
                  age: '64',
                  date: '2012/04/09',
                  salary: '$138'
                },
                {
                  name: 'Zenaida Frank',
                  position: 'Software Engineer',
                  office: 'New York',
                  age: '63',
                  date: '2010/01/04',
                  salary: '$125'
                },
                {
                  name: 'Zorita Serrano',
                  position: 'Software Engineer',
                  office: 'San Francisco',
                  age: '56',
                  date: '2012/06/01',
                  salary: '$115'
                },
                {
                  name: 'Jennifer Acosta',
                  position: 'Junior Javascript Developer',
                  office: 'Edinburgh',
                  age: '43',
                  date: '2013/02/01',
                  salary: '$75'
                },
                {
                  name: 'Cara Stevens',
                  position: 'Sales Assistant',
                  office: 'New York',
                  age: '46',
                  date: '2011/12/06',
                  salary: '$145'
                },
                {
                  name: 'Hermione Butler',
                  position: 'Regional Director',
                  office: 'London',
                  age: '47',
                  date: '2011/03/21',
                  salary: '$356'
                },
                {
                  name: 'Lael Greer',
                  position: 'Systems Administrator',
                  office: 'London',
                  age: '21',
                  date: '2009/02/27',
                  salary: '$103'
                },
                {
                  name: 'Jonas Alexander',
                  position: 'Developer',
                  office: 'San Francisco',
                  age: '30',
                  date: '2010/07/14',
                  salary: '$86'
                },
                {
                  name: 'Shad Decker',
                  position: 'Regional Director',
                  office: 'Edinburgh',
                  age: '51',
                  date: '2008/11/13',
                  salary: '$183'
                },
                {
                  name: 'Michael Bruce',
                  position: 'Javascript Developer',
                  office: 'Singapore',
                  age: '29',
                  date: '2011/06/27',
                  salary: '$183'
                },
                {
                  name: 'Donna Snider',
                  position: 'Customer Support',
                  office: 'New York',
                  age: '27',
                  date: '2011/01/25',
                  salary: '$112'
                }
              ]
            }
          }
        }
      };
    </script>
    <style>
    </style>
    
        
    
        
            
    <template>
      <mdb-datatable data="https://YOUR_API_URL" striped bordered />
    </template>
    <script>
      import {
        mdbDatatable
      } from 'mdbvue';
      export default {
        name: 'DatatablePage',
        components: {
          mdbDatatable
        }
      };
    </script>
    
        
    
        
            
      data = {
        columns: [{
          label: String(displayed column label),
          field: String(corresponding key for cells),
          sort: String(Optional, 'asc' / 'desc', describes the initial sorting direcotry),
          format: Function(optional, formats the displayed data)
        }],
        rows: [
          {
            field: String(corresponds column 's field, contains cell data),
            field: String,
            field: String,
            ...
          }
        ]
      }
    
        
    

API Reference

All properties and options refered to mdb-datatable-2 component.

Name Type Default Description Example
sorting Boolean true Determines whether sorting is enabled/disabled. <mdb-datatable-2 striped>
order String[] Sets initial order. Accepts array of strings, index 0: table field by which you want to sort, index 1: sorting direction ('desc'/'asc'). <mdb-datatable-2 order="['age', 'desc']">
searching [String, Object] '' Determines searching value. <mdb-datatable-2 :searching="{value: search, field: 'office'}">
pagination Boolean true Determines whether pagination is enabled/disabled. <mdb-datatable-2 pagination="false">
scrollY Boolean false Allows table to be scrolled vertically if it's content is higher than 200px. Combine it with maxHeight to manipulate table's height. <mdb-datatable-2 scrollY>
maxHeight String 200px Sets table's maxHeight. You can use px, vh or whatever fits to your needs. <mdb-datatable-2 maxHeight="400px">
striped Boolean false Adds zebra-striping to any table row. <mdb-datatable-2 striped>
bordered Boolean false Adds border on all table's and cell's sides. <mdb-datatable-2 bordered>
borderless Boolean false Disables border on all table's and cell's sides. <mdb-datatable-2 borderless>
hover Boolean false Adds hover state on table rows (rows are marked on light-grey color). <mdb-datatable-2 hover>
small Boolean false Cuts cell's padding by half. <mdb-datatable-2 small>
reponsive Boolean true Makes table scrollable horizontally when screen width is smaller than table content (under 768px).
It make use of overflow-y: hidden which clips off content that goes beyon the bottom or top edge of the table.
<mdb-datatable-2 responsive>
reponsiveSm Boolean false Makes table scrollable horizontally on under 576px wide screens. <mdb-datatable-2 responsiveSm>
reponsiveMd Boolean false Makes table scrollable horizontally on under 768px wide screens. <mdb-datatable-2 responsiveMd>
reponsiveLg Boolean false Makes table scrollable horizontally on under 992px wide screens. <mdb-datatable-2 responsiveLg>
reponsiveXl Boolean false Makes table scrollable horizontally on under 1200px wide screens. <mdb-datatable-2 responsiveXl>
autoWidth Boolean false Automatically adjust columns width to the content. <mdb-datatable-2 autoWidth>
filter String Adds a new select to filter table data by column name. <mdb-datatable-2 filter="office" >
fixed Boolean false Sets fixed columns width. <mdb-datatable-2 fixed>
arrows Boolean false Replaces 'Next', 'Previous', 'Start' and 'End' in the pagination with mdb-icons. <mdb-datatable-2 arrows>
start String 'Start' Replaces 'Start' in the pagination with the custom text. <mdb-datatable-2 start="<<">
end String "End" Replaces 'End' in the pagination with the custom text. <mdb-datatable-2 end=">>">
next String "Next" Replaces 'Next' in the pagination with the custom text. <mdb-datatable-2 next=">">
previous String "Previous" Replaces 'Previous' in the pagination with the custom text. <mdb-datatable-2 previous="<">
display Number 5 Specifies maximum number of pages displayed in the pagination. <mdb-datatable-2 :display="7">
defaultRow String '-' Specifies default value for the missing piece of data. <mdb-datatable-2 defaultRow="missing data">
defaultCol String 'undefined' Specifies default value for the column header - for example when one of the elements in the columns array is null <mdb-datatable-2 defaultCol="default header">
footer String Determines table footer content <mdb-datatable-2 footer="'<td colspan="7">Test</td>''">
refresh Boolean false If set to true, 'refresh' button will be shown. To refresh content data property has to be in following format: v-model="./https://YOUR_API" <mdb-datatable-2 v-model="./https://YOUR_API" refresh>
reactive Boolean false Triggers reloading data every 5 seconds (you can change this value with time property. To reload content data property has to be in following format: v-model="./https://YOUR_API" <mdb-datatable-2 v-model="./https://YOUR_API" reactive>
time Number 5000 Sets time interval for reloading reactive data . <mdb-datatable-2 v-model="./https://YOUR_API" reactive :time="3000">
searchPlaceholder String "Search" Changes placeholder in Search input to custom text <mdb-datatable-2 searchPlaceholder="..." >
entriesTitle String "Show entries" Changes title next to select with number of entries to custom text <mdb-datatable-2 entriesTitle="..." >
noFoundMessage String "No matching records found" Allows to display custom message informing user about lack of data <mdb-datatable-2 noFoundMessage="..." >
showingText String "Showing" Allows to resplace 'of'" with different word <mdb-datatable-2 showingText="..." >
btnColor String primary Changes refresh button's colot <mdb-datatable-2 btnColor="secondary" >
paginationColor String blue Changes the color of the pagination <mdb-datatable-2 paginationColor="red" >
selectColor String blue lighten-4 Changes the color of the selected row <mdb-datatable-2 selectColor="indigo lighten-3" >
hoverColor String blue lighten-5 Changes the color of the hovered row <mdb-datatable-2 hoverColor="indigo lighten-5" >
fixedHeader Boolean false Enables fixed header option <mdb-datatable-2 fixedHeader >
fixedCols Number Defines number of fixed cols. Keep in mind to define fixedColsPosition's to make it work fine. <mdb-datatable-2 :fixedCols="2" :fixedColsPosition="[0, 150]" >
fixedColsPosition Array [0, 120] Defines position of fixed cols <mdb-datatable-2 :fixedCols="2" :fixedColsPosition="[0, 150]" >
fixedColsBg String white Defines fixed cols background color <mdb-datatable-2 :fixedCols="2" :fixedColsPosition="[0, 150]" fixedColsBg="blue" >
fullPagination Boolean false Enables full pagination <mdb-datatable-2 fullPagination >
selectable Boolean false Enables selectable mode <mdb-datatable-2 selectable >
multiselectable Boolean false Enables multiselectable mode <mdb-datatable-2 multiselectable >

- property available only for PRO users.


API Reference: Events

Event Description Example
@selected It emits selected row data. <mdb-datatable-2 @selected="selected = $event" />
@fields Emits columns after a component mounts and once data is fetched from API <mdb-datatable-2 v-model="https://..." @fields="setColumns" />
@pages Emits an array of pages (sorted & grouped entries) <mdb-datatable-2 v-model="..." @pages="setPages" />