Vue Bootstrap Table Scroll
Vue Table Scroll - 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
For vue tables with a huge amount of data you can use scroll functionality, as an alternative for the pagination.
Scrolling functionality works vertically (y-axis) and horizontally (x-axis).
Static table vertical scroll
More scroll options for static tables you can find in the Table Responsive documentation.
<template>
<mdb-scrollbar height="200px">
<mdb-tbl bordered>
<mdb-tbl-head color="light">
<tr>
<th scope="col">#</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Handle</th>
</tr>
</mdb-tbl-head>
<mdb-tbl-body>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
<tr>
<th scope="row">4</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<th scope="row">5</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<th scope="row">6</th>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
</mdb-tbl-body>
</mdb-tbl>
</mdb-scrollbar>
</template>
<script>
import {
mdbTbl,
mdbTblHead,
mdbTblBody,
mdbScrollbar
} from 'mdbvue';
export default {
name: 'TableScrollPage',
components: {
mdbTbl,
mdbTblHead,
mdbTblBody,
mdbScrollbar
}
}
</script>
Datatable vertical scroll
Name | Position | Office | Age | Start date | Salary |
---|---|---|---|---|---|
Tiger Nixon | System Architect | Edinburgh | 61 | 2011/04/25 | $320,800 |
Garrett Winters | Accountant | Tokyo | 63 | 2011/07/25 | $170,750 |
Ashton Cox | Junior Technical Author | San Francisco | 66 | 2009/01/12 | $86,000 |
Cedric Kelly | Senior Javascript Developer | Edinburgh | 22 | 2012/03/29 | $433,060 |
Airi Satou | Accountant | Tokyo | 33 | 2008/11/28 | $162,700 |
Brielle Williamson | Integration Specialist | New York | 61 | 2012/12/02 | $372,000 |
Herrod Chandler | Sales Assistant | San Francisco | 59 | 2012/08/06 | $137,500 |
Rhona Davidson | Integration Specialist | Tokyo | 55 | 2010/10/14 | $327,900 |
Colleen Hurst | Javascript Developer | San Francisco | 39 | 2009/09/15 | $205,500 |
Name | Position | Office | Age | Start date | Salary |
<template>
<mdb-datatable :data="data" striped bordered fixed scrollY :maxHeight="200px" />
</template>
<script>
import {
mdbDatatable
} from 'mdbvue';
export default {
name: 'TableScrollPage',
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'
}
]
}
};
}
}
</script>
To enable y-scrolling simply set the
scrollY
property to the mdb-datatable
component.
maxHeight
property lets you set your desirable table height.
Datatable vertical dynamic height
This example shows a vertically scrolling DataTable that makes use of the CSS3
vh
unit in order to dynamically resize the viewport based on the browser window height. The
vh
unit is effectively a percentage of the browser window height. So the
20vh
used in this example is 20% of the window height. The viewport size will update
dynamically as the window is resized.
Name | Position | Office | Age | Start date | Salary |
---|---|---|---|---|---|
Tiger Nixon | System Architect | Edinburgh | 61 | 2011/04/25 | $320,800 |
Garrett Winters | Accountant | Tokyo | 63 | 2011/07/25 | $170,750 |
Ashton Cox | Junior Technical Author | San Francisco | 66 | 2009/01/12 | $86,000 |
Cedric Kelly | Senior Javascript Developer | Edinburgh | 22 | 2012/03/29 | $433,060 |
Airi Satou | Accountant | Tokyo | 33 | 2008/11/28 | $162,700 |
Brielle Williamson | Integration Specialist | New York | 61 | 2012/12/02 | $372,000 |
Herrod Chandler | Sales Assistant | San Francisco | 59 | 2012/08/06 | $137,500 |
Rhona Davidson | Integration Specialist | Tokyo | 55 | 2010/10/14 | $327,900 |
Name | Position | Office | Age | Start date | Salary |
<template>
<mdb-datatable :data="data" striped bordered fixed scrollY :maxHeight="20vh" />
</template>
<script>
import {
mdbDatatable
} from 'mdbvue';
export default {
name: 'TableScrollPage',
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'
}
]
}
};
}
}
</script>
Datatable horizontal scroll
First name | Last name | Position | Office | Age | Start date | Salary | Extn. | |
---|---|---|---|---|---|---|---|---|
Tiger | Nixon | System Architect | Edinburgh | 61 | 2011/04/25 | $320,800 | 5421 | t.nixon@datatables.net |
Garrett | Winters | Accountant | Tokyo | 63 | 2011/07/25 | $170,750 | 8422 | g.winters@datatables.net |
Ashton | Cox | Junior Technical Author | San Francisco | 66 | 2009/01/12 | $86,000 | 1562 | a.cox@datatables.net |
Cedric | Kelly | Senior Javascript Developer | Edinburgh | 22 | 2012/03/29 | $433,060 | 6224 | c.kelly@datatables.net |
<template>
<mdb-datatable :data="data" striped bordered fixed responsive :maxWidth="700px" />
</template>
<script>
import {
mdbDatatable
} from 'mdbvue';
export default {
name: 'TableScrollPage',
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',
surname: 'Nixon',
position: 'System Architect',
office: 'Edinburgh',
age: '61',
date: '2011/04/25',
salary: '$320,800',
extn: 5421,
email: 't.nixon@datatables.net'
},
{
name: 'Garrett',
surname: 'Winters',
position: 'Accountant',
office: 'Tokyo',
age: '63',
date: '2011/07/25',
salary: '$170,750',
extn: 8422,
email: 'q.winters@datatables.net'
},
{
name: 'Ashton',
surname: 'Cox',
position: 'Junior Technical Author',
office: 'San Francisco',
age: '66',
date: '2009/01/12',
salary: '$86,000',
extn: 1562,
email: 'a.cox@datatables.net'
},
{
name: 'Cedric',
surname: 'Kelly',
position: 'Senior Javascript Developer',
office: 'Edinburgh',
age: '22',
date: '2012/03/29',
salary: '$433,060',
extn: 6224,
email: 'c.kelly@datatables.net'
}
]
}
};
}
}
</script>
DataTables has the ability to show tables with horizontal scrolling, which is very useful for when you have a wide
table,
but want to constrain it to a limited horizontal display area. To enable x-scrolling simply set the props
responsive
and maxWidth
to be whatever you want the container wrapper's width to be (this
should be 100% in almost all cases with
the width being constrained by the container element).
Datatable horizontal and vertical scroll
First name | Last name | Position | Office | Age | Start date | Salary | Extn. | |
---|---|---|---|---|---|---|---|---|
Tiger | Nixon | System Architect | Edinburgh | 61 | 2011/04/25 | $320,800 | 5421 | t.nixon@datatables.net |
Garrett | Winters | Accountant | Tokyo | 63 | 2011/07/25 | $170,750 | 8422 | g.winters@datatables.net |
Ashton | Cox | Junior Technical Author | San Francisco | 66 | 2009/01/12 | $86,000 | 1562 | a.cox@datatables.net |
Cedric | Kelly | Senior Javascript Developer | Edinburgh | 22 | 2012/03/29 | $433,060 | 6224 | c.kelly@datatables.net |
Airi | Satou | Accountant | Tokyo | 33 | 2008/11/28 | $162,700 | 5407 | a.satou@datatables.net |
Brielle | Williamson | Integration Specialist | New York | 61 | 2012/12/02 | $372,000 | 4804 | b.williamson@datatables.net |
<template>
<mdb-datatable :data="data" striped bordered fixed responsive scrollY :maxWidth="700px" />
</template>
<script>
import {
mdbDatatable
} from 'mdbvue';
export default {
name: 'TableScrollPage',
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',
surname: 'Nixon',
position: 'System Architect',
office: 'Edinburgh',
age: '61',
date: '2011/04/25',
salary: '$320,800',
extn: 5421,
email: 't.nixon@datatables.net'
},
{
name: 'Garrett',
surname: 'Winters',
position: 'Accountant',
office: 'Tokyo',
age: '63',
date: '2011/07/25',
salary: '$170,750',
extn: 8422,
email: 'q.winters@datatables.net'
},
{
name: 'Ashton',
surname: 'Cox',
position: 'Junior Technical Author',
office: 'San Francisco',
age: '66',
date: '2009/01/12',
salary: '$86,000',
extn: 1562,
email: 'a.cox@datatables.net'
},
{
name: 'Cedric',
surname: 'Kelly',
position: 'Senior Javascript Developer',
office: 'Edinburgh',
age: '22',
date: '2012/03/29',
salary: '$433,060',
extn: 6224,
email: 'c.kelly@datatables.net'
},
{
name: 'Airi',
surname: 'Satou',
position: 'Accountant',
office: 'Tokyo',
age: '33',
date: '2008/11/28',
salary: '$162,700',
extn: 5407,
email: 'a.satou@datatables.net'
},
{
name: 'Brielle',
surname: 'Williamson',
position: 'Integration Specialist',
office: 'New York',
age: '61',
date: '2012/12/02',
salary: '$372,000',
extn: 4804,
email: 'b.williamson@datatables.net'
},
]
}
};
}
}
</script>
In this example you can see DataTables doing both horizontal and vertical scrolling at the same time. Note also that pagination is enabled in this example, and the scrolling accounts for this.
Advanced table options
For advanced options of the tables have a look at specific documentation pages listed below.
Tables with additional elements and customization options
Tables with buttons, checkboxes, icons, panels & more.
Table responsive
Advanced options of responsive tables
Datatables
MDBootstrap integration with the most popular plugin enhancing the possibilities of standard tables.
Table pagination
Pagination is a simple navigation which lets you split a huge amount of content within the tables into smaller parts.
Table search
MDBootstrap search box enables super fast searching among all the data of the table.
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 {
mdbDatatable
} 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
component.
Name | Type | Default | Description | Example |
---|---|---|---|---|
sorting |
Boolean | true |
Determines whether sorting is enabled/disabled. | <mdb-datatable 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 order="['age', 'desc']"> |
searching |
Boolean | true |
Determines whether searching is enabled/disabled. | <mdb-datatable searching="false"> |
pagination |
Boolean | true |
Determines whether pagination is enabled/disabled. | <mdb-datatable 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 scrollY> |
maxHeight |
String | 200px |
Sets table's maxHeight. You can use px, vh or whatever fits to your needs. | <mdb-datatable maxHeight="400px"> |
striped |
Boolean | false |
Adds zebra-striping to any table row. | <mdb-datatable striped> |
bordered |
Boolean | false |
Adds border on all table's and cell's sides. | <mdb-datatable bordered> |
borderless |
Boolean | false |
Disables border on all table's and cell's sides. | <mdb-datatable borderless> |
hover |
Boolean | false |
Adds hover state on table rows (rows are marked on light-grey color). | <mdb-datatable hover> |
small |
Boolean | false |
Cuts cell's padding by half. | <mdb-datatable small> |
reponsive |
Boolean | false |
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 responsive> |
reponsiveSm |
Boolean | false |
Makes table scrollable horizontally on under 576px wide screens. | <mdb-datatable responsiveSm> |
reponsiveMd |
Boolean | false |
Makes table scrollable horizontally on under 768px wide screens. | <mdb-datatable responsiveMd> |
reponsiveLg |
Boolean | false |
Makes table scrollable horizontally on under 992px wide screens. | <mdb-datatable responsiveLg> |
reponsiveXl |
Boolean | false |
Makes table scrollable horizontally on under 1200px wide screens. | <mdb-datatable responsiveXl> |
autoWidth |
Boolean | false |
Automatically adjust columns width to the content. | <mdb-datatable autoWidth> |
fixed |
Boolean | false |
Sets fixed columns width. | <mdb-datatable fixed> |