How to add rows programmatically to a datatable with a column with generated content like button
How to add rows programmatically to a datatable with a column with generated content like button
kjpradeep
Posts: 4Questions: 1Answers: 0
I have my table being created using below lines :
t = $('#myTableId').DataTable({
columns : [ {
data : 'col1',
'render' : function(data, type, row, meta) {
return '<button class="btn btn-danger btn-sm" title="Delete" type="button" onclick=\'myfunction('
+ JSON.stringify(row)
+ ')\' ><i class="fas fa-trash"></i></button>';
}
}, {
data : 'col2'
}, {
data : 'col3'
}, ]
});
Then on click of a button on the html page i am invoking the below line :
t.row.add( [
{
"col1" : 1,
"col2" : "some string",
"col3": "some other string"
}
] ).draw( false );
Then i am constantly getting the below datatable error :
DataTables warning: table id=myTableId -
Requested unknown parameter 'col2' for row 2, column 1.
For more information about this error, please see http://datatables.net/tn/4
Can someone suggest me why it is unable to recognize the properties from the supplied json. Does it have to be some other way ?
This discussion has been closed.
Answers
i could fix it by first creating a javascript object and then creating a json out of it.
The problem with this code:
The
row.add()
API doesn't expect your row object to be contained in an array since it expects to add only one row. This would work:The
row.add()
API docs don't state that a JSON string is supported. It may work but its an extra step that you don't need and maybe not supported.Kevin