A react component data-table librabry. Latest version - v1.0.3
<DataTable
headers={headers}
body={bodyAsJSONArray}
isPaging
pageSize={3}
noOfIndexToBeShown={3}
enableDelete
enableEdit
onRowUpdate={methodToHandleEditingRecord}
enableFilter
/>
- Specify header type as IHeaderType[].
title
is what to show in data table headerprop
is property name of data sourceenableSort
to enabe sorting to specific columnnoEdit
to restrict editing the specific columntype
is data type of propertyoptionsOnEdit
provides multiple option while on edit mode (provide only when the field is a dropdown)
Following code is a header sample. Pass this headers object to headers props of DataTable component
var headers: IHeaderType[] = [
{ title: "Id", prop: "id", enableSort: true, noEdit: true },
{ title: "Name", prop: "name", enableSort: true },
{ title: "Address", prop: "add" },
{ title: "Age", prop: "age", enableSort: true},
{ title: "Country", prop: "country", enableSort: true, type: PropDataType.MULTI_OPTION, optionsOnEdit: sampleOptions},
{ title: "Status", prop: "status", type: PropDataType.CHECKBOX }
];
var sampleOptions = [ "USA", "IND", "AUS"];
Header type as follows
interface IHeaderType {
title: string;
prop: string;
enableSort?: boolean;
type?: PropDataType;
optionsOnEdit?: any;
noEdit?: boolean;
}
Property types as follows
enum PropDataType {
TEXT, MULTI_OPTION, CHECKBOX
}
enableSort: true
in header configuration to enable sorting
- Provide
isPaging
to enable pagination - Provide
pageSize={noOfRecordsPerPage}
to show specific number of records per page - Provide
noOfIndexToBeShown={3}
to show number of page indexes in paging div
<DataTable isPaging pageSize={3} noOfIndexToBeShown={3} />
Provide eneableFilter
props to enable filter operation in datatable
NOTE: By default filter is wild card search from every column
<DataTable enableFilter />
Provide enableEdit
props to enable edit button in data table
<DataTable enableEdit />
Add a event handler to handle modified record. NOTE: DataTable component temporarily updates the record in memory and emits the modifed record for you. Pass your method to handle that object as shown below. This will work in both update and delete operation
<DataTable
onRowUpdate={methodToHandleEditingRecord}
/>
function methodToHandleEditingRecord(record) {
// record object holds the selected edited record from data source
// update to database
}