DataTable

DataTables

DataTables are components that mix tables with advanced options like searching, sorting and pagination.

Basic DataTable

Default DataTable example.

import React from "react";
import { CDBCard, CDBCardBody, CDBDataTable, CDBRow, CDBCol, CDBContainer } from "cdbreact";
const DataTable = () => {
function testClickEvent(param) {
alert("Row Click Event");
}
const data = () =>{ return ({
columns: [
{
label: "Name",
field: "name",
width: 150,
attributes: {
"aria-controls": "DataTable",
"aria-label": "Name",
},
},
{
label: "Position",
field: "position",
width: 270,
},
{
label: "Office",
field: "office",
width: 200,
},
{
label: "Age",
field: "age",
sort: "asc",
width: 100,
},
{
label: "Start date",
field: "date",
sort: "disabled",
width: 150,
},
{
label: "Salary",
field: "salary",
sort: "disabled",
width: 100,
},
],
rows: [
{
name: "Tiger Nixon",
position: "System Architect",
office: "Edinburgh",
age: "61",
date: "2011/04/25",
salary: "$320",
clickEvent: () => testClickEvent(1),
},
{
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: "Donna Snider",
position: "Customer Support",
office: "New York",
age: "27",
date: "2011/01/25",
salary: "$112",
},
],
}); };
return (
<CDBContainer>
<CDBCard>
<CDBCardBody>
<CDBDataTable
striped
bordered
hover
entriesOptions={[5, 20, 25]}
entries={5}
pagesAmount={4}
data={data()}
materialSearch={true}
/>
</CDBCardBody>
</CDBCard>
</CDBContainer>
);
};
export default DataTable;

Not Striped

import React from "react";
import { CDBCard, CDBCardBody, CDBDataTable, CDBRow, CDBCol, CDBContainer } from "cdbreact";
const DataTable = () => {
function testClickEvent(param) {
alert("Row Click Event");
}
const data = () =>{ return ({
columns: [
{
label: "Name",
field: "name",
width: 150,
attributes: {
"aria-controls": "DataTable",
"aria-label": "Name",
},
},
{
label: "Position",
field: "position",
width: 270,
},
{
label: "Office",
field: "office",
width: 200,
},
{
label: "Age",
field: "age",
sort: "asc",
width: 100,
},
{
label: "Start date",
field: "date",
sort: "disabled",
width: 150,
},
{
label: "Salary",
field: "salary",
sort: "disabled",
width: 100,
},
],
rows: [
{
name: "Tiger Nixon",
position: "System Architect",
office: "Edinburgh",
age: "61",
date: "2011/04/25",
salary: "$320",
clickEvent: () => testClickEvent(1),
},
{
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: "Donna Snider",
position: "Customer Support",
office: "New York",
age: "27",
date: "2011/01/25",
salary: "$112",
},
],
}); };
return (
<CDBContainer>
<CDBCard>
<CDBCardBody>
<CDBDataTable
bordered
hover
entriesOptions={[5, 20, 25]}
entries={5}
pagesAmount={4}
data={data()}
materialSearch={true}
/>
</CDBCardBody>
</CDBCard>
</CDBContainer>
);
};
export default DataTable;

Fixed Height

import React from "react";
import { CDBCard, CDBCardBody, CDBDataTable, CDBRow, CDBCol, CDBContainer } from "cdbreact";
const DataTable = () => {
function testClickEvent(param) {
alert("Row Click Event");
}
const data = () =>{ return ({
columns: [
{
label: "Name",
field: "name",
width: 150,
attributes: {
"aria-controls": "DataTable",
"aria-label": "Name",
},
},
{
label: "Position",
field: "position",
width: 270,
},
{
label: "Office",
field: "office",
width: 200,
},
{
label: "Age",
field: "age",
sort: "asc",
width: 100,
},
{
label: "Start date",
field: "date",
sort: "disabled",
width: 150,
},
{
label: "Salary",
field: "salary",
sort: "disabled",
width: 100,
},
],
rows: [
{
name: "Tiger Nixon",
position: "System Architect",
office: "Edinburgh",
age: "61",
date: "2011/04/25",
salary: "$320",
clickEvent: () => testClickEvent(1),
},
{
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: "Donna Snider",
position: "Customer Support",
office: "New York",
age: "27",
date: "2011/01/25",
salary: "$112",
},
],
}); };
return (
<CDBContainer>
<CDBCard>
<CDBCardBody>
<CDBDataTable
striped
bordered
hover
scrollY
maxHeight="50vh"
data={data()}
materialSearch
/>
</CDBCardBody>
</CDBCard>
</CDBContainer>
);
};
export default DataTable;

Disabled Button

import React from "react";
import { CDBCard, CDBCardBody, CDBDataTable, CDBRow, CDBCol, CDBContainer } from "cdbreact";
const DataTable = () => {
function testClickEvent(param) {
alert("Row Click Event");
}
const data = () =>{ return ({
columns: [
{
label: "Name",
field: "name",
width: 150,
attributes: {
"aria-controls": "DataTable",
"aria-label": "Name",
},
},
{
label: "Position",
field: "position",
width: 270,
},
{
label: "Office",
field: "office",
width: 200,
},
{
label: "Age",
field: "age",
sort: "asc",
width: 100,
},
{
label: "Start date",
field: "date",
sort: "disabled",
width: 150,
},
{
label: "Salary",
field: "salary",
sort: "disabled",
width: 100,
},
],
rows: [
{
name: "Tiger Nixon",
position: "System Architect",
office: "Edinburgh",
age: "61",
date: "2011/04/25",
salary: "$320",
clickEvent: () => testClickEvent(1),
},
{
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: "Donna Snider",
position: "Customer Support",
office: "New York",
age: "27",
date: "2011/01/25",
salary: "$112",
},
],
}); };
return (
<CDBContainer>
<CDBCard>
<CDBCardBody>
<CDBDataTable
striped
bordered
hover
scrollX
data={data()}
materialSearch
/>
</CDBCardBody>
</CDBCard>
</CDBContainer>
);
};
export default DataTable;

Full Pagination

import React from "react";
import { CDBCard, CDBCardBody, CDBDataTable, CDBRow, CDBCol, CDBContainer } from "cdbreact";
const DataTable = () => {
function testClickEvent(param) {
alert("Row Click Event");
}
const data = () =>{ return ({
columns: [
{
label: "Name",
field: "name",
width: 150,
attributes: {
"aria-controls": "DataTable",
"aria-label": "Name",
},
},
{
label: "Position",
field: "position",
width: 270,
},
{
label: "Office",
field: "office",
width: 200,
},
{
label: "Age",
field: "age",
sort: "asc",
width: 100,
},
{
label: "Start date",
field: "date",
sort: "disabled",
width: 150,
},
{
label: "Salary",
field: "salary",
sort: "disabled",
width: 100,
},
],
rows: [
{
name: "Tiger Nixon",
position: "System Architect",
office: "Edinburgh",
age: "61",
date: "2011/04/25",
salary: "$320",
clickEvent: () => testClickEvent(1),
},
{
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: "Donna Snider",
position: "Customer Support",
office: "New York",
age: "27",
date: "2011/01/25",
salary: "$112",
},
],
}); };
return (
<CDBContainer>
<CDBCard>
<CDBCardBody>
<CDBDataTable
striped
bordered
hover
scrollX
scrollY
maxHeight="300xp"
data={data()}
materialSearch
fullPagination
/>
</CDBCardBody>
</CDBCard>
</CDBContainer>
);
};
export default DataTable;

Checkbox

import React from "react";
import { CDBCard, CDBCardBody, CDBDataTable, CDBRow, CDBCol, CDBContainer } from "cdbreact";
const DataTable = () => {
function testClickEvent(param) {
alert("Row Click Event");
}
const data = () =>{ return ({
columns: [
{
label: "Name",
field: "name",
width: 150,
attributes: {
"aria-controls": "DataTable",
"aria-label": "Name",
},
},
{
label: "Position",
field: "position",
width: 270,
},
{
label: "Office",
field: "office",
width: 200,
},
{
label: "Age",
field: "age",
sort: "asc",
width: 100,
},
{
label: "Start date",
field: "date",
sort: "disabled",
width: 150,
},
{
label: "Salary",
field: "salary",
sort: "disabled",
width: 100,
},
],
rows: [
{
name: "Tiger Nixon",
position: "System Architect",
office: "Edinburgh",
age: "61",
date: "2011/04/25",
salary: "$320",
clickEvent: () => testClickEvent(1),
},
{
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: "Donna Snider",
position: "Customer Support",
office: "New York",
age: "27",
date: "2011/01/25",
salary: "$112",
},
],
}); };
return (
<CDBContainer>
<CDBCard>
<CDBCardBody>
<CDBDataTable
striped
bordered
hover
checkbox
data={data()}
materialSearch
/>
</CDBCardBody>
</CDBCard>
</CDBContainer>
);
};
export default DataTable;

No Search

import React from "react";
import { CDBCard, CDBCardBody, CDBDataTable, CDBRow, CDBCol, CDBContainer } from "cdbreact";
const DataTable = () => {
function testClickEvent(param) {
alert("Row Click Event");
}
const data = () =>{ return ({
columns: [
{
label: "Name",
field: "name",
width: 150,
attributes: {
"aria-controls": "DataTable",
"aria-label": "Name",
},
},
{
label: "Position",
field: "position",
width: 270,
},
{
label: "Office",
field: "office",
width: 200,
},
{
label: "Age",
field: "age",
sort: "asc",
width: 100,
},
{
label: "Start date",
field: "date",
sort: "disabled",
width: 150,
},
{
label: "Salary",
field: "salary",
sort: "disabled",
width: 100,
},
],
rows: [
{
name: "Tiger Nixon",
position: "System Architect",
office: "Edinburgh",
age: "61",
date: "2011/04/25",
salary: "$320",
clickEvent: () => testClickEvent(1),
},
{
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: "Donna Snider",
position: "Customer Support",
office: "New York",
age: "27",
date: "2011/01/25",
salary: "$112",
},
],
}); };
return (
<CDBContainer>
<CDBCard>
<CDBCardBody>
<CDBDataTable
striped
bordered
hover
data={data()}
searching={false}
/>
</CDBCardBody>
</CDBCard>
</CDBContainer>
);
};
export default DataTable;

No Sort

import React from "react";
import { CDBCard, CDBCardBody, CDBDataTable, CDBRow, CDBCol, CDBContainer } from "cdbreact";
const DataTable = () => {
function testClickEvent(param) {
alert("Row Click Event");
}
const data = () =>{ return ({
columns: [
{
label: "Name",
field: "name",
width: 150,
attributes: {
"aria-controls": "DataTable",
"aria-label": "Name",
},
},
{
label: "Position",
field: "position",
width: 270,
},
{
label: "Office",
field: "office",
width: 200,
},
{
label: "Age",
field: "age",
sort: "asc",
width: 100,
},
{
label: "Start date",
field: "date",
sort: "disabled",
width: 150,
},
{
label: "Salary",
field: "salary",
sort: "disabled",
width: 100,
},
],
rows: [
{
name: "Tiger Nixon",
position: "System Architect",
office: "Edinburgh",
age: "61",
date: "2011/04/25",
salary: "$320",
clickEvent: () => testClickEvent(1),
},
{
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: "Donna Snider",
position: "Customer Support",
office: "New York",
age: "27",
date: "2011/01/25",
salary: "$112",
},
],
}); };
return (
<CDBContainer>
<CDBCard>
<CDBCardBody>
<CDBDataTable
striped
bordered
hover
data={data()}
sortable={false}
materialSearch
/>
</CDBCardBody>
</CDBCard>
</CDBContainer>
);
};
export default DataTable;

No Info

import React from "react";
import { CDBCard, CDBCardBody, CDBDataTable, CDBRow, CDBCol, CDBContainer } from "cdbreact";
const DataTable = () => {
function testClickEvent(param) {
alert("Row Click Event");
}
const data = () =>{ return ({
columns: [
{
label: "Name",
field: "name",
width: 150,
attributes: {
"aria-controls": "DataTable",
"aria-label": "Name",
},
},
{
label: "Position",
field: "position",
width: 270,
},
{
label: "Office",
field: "office",
width: 200,
},
{
label: "Age",
field: "age",
sort: "asc",
width: 100,
},
{
label: "Start date",
field: "date",
sort: "disabled",
width: 150,
},
{
label: "Salary",
field: "salary",
sort: "disabled",
width: 100,
},
],
rows: [
{
name: "Tiger Nixon",
position: "System Architect",
office: "Edinburgh",
age: "61",
date: "2011/04/25",
salary: "$320",
clickEvent: () => testClickEvent(1),
},
{
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: "Donna Snider",
position: "Customer Support",
office: "New York",
age: "27",
date: "2011/01/25",
salary: "$112",
},
],
}); };
return (
<CDBContainer>
<CDBCard>
<CDBCardBody>
<CDBDataTable
striped
bordered
hover
data={data()}
info={false}
materialSearch
/>
</CDBCardBody>
</CDBCard>
</CDBContainer>
);
};
export default DataTable;

No Pagination

import React from "react";
import { CDBCard, CDBCardBody, CDBDataTable, CDBRow, CDBCol, CDBContainer } from "cdbreact";
const DataTable = () => {
function testClickEvent(param) {
alert("Row Click Event");
}
const data = () =>{ return ({
columns: [
{
label: "Name",
field: "name",
width: 150,
attributes: {
"aria-controls": "DataTable",
"aria-label": "Name",
},
},
{
label: "Position",
field: "position",
width: 270,
},
{
label: "Office",
field: "office",
width: 200,
},
{
label: "Age",
field: "age",
sort: "asc",
width: 100,
},
{
label: "Start date",
field: "date",
sort: "disabled",
width: 150,
},
{
label: "Salary",
field: "salary",
sort: "disabled",
width: 100,
},
],
rows: [
{
name: "Tiger Nixon",
position: "System Architect",
office: "Edinburgh",
age: "61",
date: "2011/04/25",
salary: "$320",
clickEvent: () => testClickEvent(1),
},
{
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: "Donna Snider",
position: "Customer Support",
office: "New York",
age: "27",
date: "2011/01/25",
salary: "$112",
},
],
}); };
return (
<CDBContainer>
<CDBRow className="py-3">
<CDBCol md="12">
<CDBCard>
<CDBCardBody>
<CDBDataTable
striped
bordered
hover
paging={false}
data={data()}
materialSearch
/>
</CDBCardBody>
</CDBCard>
</CDBCol>
</CDBRow>
</CDBContainer>
);
};
export default DataTable;

API

In this section you will find advanced information about the DataTable component. You will find out which modules are required, what are the possibilities of configuring the component, and what events and methods you can use to work with it.

Contrast DataTable Import Statement

You need to import the Contrast DataTable component first before using it.

import { CDBDataTable } from "cdbreact";

API Reference: Contrast DataTable Properties

The table below shows the configuration options of the CDBDataTable component.

NameTypeDefaultDescriptionExample
classNameStringAdds classes to data table component<CDBDataTable className="myClass" ... />
tagStringdivChanges default input tag<CDBDataTable tag="input" ... />
autoWidthBooleanfalseAutomatically adjust columns width to the content.<CDBDataTable autoWidth .../>
barReverseBooleanfalseSwaps position of 'search' and 'show entries' elements<CDBDataTable barReverse .../>
borderedBooleanfalseAdds border on all table's and cell's sides.<CDBDataTable bordered .../>
borderlessBooleanfalseDisables border on all table's and cell's sides.<CDBDataTable borderless .../>
btnBooleanfalseAdjust table styles to work with content like buttons<CDBDataTable btn .../>
darkBooleanfalseSets dark color palette of the table.<CDBDataTable dark .../>
dataObject or StringAttach your data or link to the JSON with your data.<CDBDataTable data={data} .../>
disableRetreatAfterSortingBooleanfalseDisable retreat after sorting to the first page.<CDBDataTable disableRetreatAfterSorting .../>
displayEntriesBooleantrueDetermines whether entries is enabled/disabled.<CDBDataTable displayEntries={false} .../>
entriesNumberInitial entries amount value.<CDBDataTable entries .../>
entriesLabelStringShow EntriesChange entries label; you can attach jsx code to render f.e. links.<CDBDataTable entriesLabel="Show labels" .../>
entriesOptionsArray[Number][10, 20, 50, 100]Sets entries amount options available to select in dropdown.<CDBDataTable entriesOptions={[5, 10, 15 ]} .../>
exportToCSVBooleanfalseIf you add this property the button will appear. By clicking it the .csv file with your table will be downloaded.<CDBDataTable exportToCSV .../>
officeStringAdds a new select to filter table data by column field.<CDBDataTable filter="office" .../>
fixedBooleanfalseSets fixed columns width.<CDBDataTable fixed .../>
hoverBooleanfalseAdds hover state on table rows (rows are marked on light-grey color).<CDBDataTable hover .../>
infoBooleantrueDetermines whether pagination info is enabled/disabled.<CDBDataTable info={false} .../>
infoLabelArray[String]["Showing", "to", "of", "entries"]Change text of paging information.<CDBDataTable infoLabel={["Showing", "to", "of", "entries"]} .../>
maxHeightString200pxSets table's maxHeight. You can use px, vh or whatever fits to your needs.<CDBDataTable maxHeight="400px" .../>
noBottomColumnBooleanfalseNo renders table footer<CDBDataTable noBottomColumn .../>
noRecordsLabelFoundStringNo matching records foundSets custom text if no have data to render<CDBDataTable noRecordsFoundLabel="Zero records to render" .../>
orderArray[String]falseSets initial order. Accepts array of strings, index 0: table field by which you want to sort, index 1: sorting direction ('desc'/'asc').<CDBDataTable order={['age', 'desc']} .../>
pagesAmountNumber8Initial number of pages simultaneously visible in pagination.<CDBDataTable pagesAmount={10} .../>
pagingBooleantrueDetermines whether pagination is enabled/disabled.<CDBDataTable paging={false} .../>
paginationLabelArray[String]["Previous", "Next"]Change pagination buttons labels.<CDBDataTable paginationLabel={["Previous", "Next"]} .../>
responsiveBooleanfalseMakes 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 beyond the bottom or top edge of the table.<CDBDataTable responsive .../>
responsiveSmBooleanfalseMakes table scrollable horizontally on under 576px wide screens.<CDBDataTable responsiveSm .../>
responsiveMdBooleanfalseMakes table scrollable horizontally on under 768px wide screens.<CDBDataTable responsiveMd .../>
responsiveLgBooleanfalseMakes table scrollable horizontally on under 992px wide screens.<CDBDataTable responsiveLg .../>
responsiveXlBooleanfalseMakes table scrollable horizontally on under 1200px wide screens.<CDBDataTable responsiveXl .../>
searchingBooleantrueDetermines whether searching is enabled/disabled.<CDBDataTable searching={false} .../>
searchLabelStringSearchChange text of search label.<CDBDataTable searchLabel="Search" .../>
scrollXBooleanfalseAllows table to be scrolled horizontally. Combine this prop with column's 'width' for the best effects.<CDBDataTable scrollX .../>
scrollYBooleanfalseAllows table to be scrolled vertically if it's content is higher than 200px. Combine it with maxHeight to manipulate table's height.<CDBDataTable scrollY .../>
sortRowsArray[String]Determines row fields which defined as components but should be sortable and searchable. Row's field component should receive property 'searchValue'!<CDBDataTable autoWidth sortRows=["search"] .../>
sortableBooleanfalseDetermines whether sorting is enabled/disabled.<CDBDataTable sortable .../>
stripedBooleanfalseAdds zebra-striping to any table row.<CDBDataTable striped .../>
theadColorStringSets background color of table head.<CDBDataTable theadColor="indigo" .../>
theadTextWhiteBooleanSets white color of table head's font.<CDBDataTable theadTextWhite .../>
tbodyColorStringSets background color of table body.<CDBDataTable tbodyColor="indigo" .../>
tbodyTextWhiteBooleanfalseSets white color of table body's font.<CDBDataTable tbodyTextWhite .../>