Editor Table redraw
Editor Table redraw
Hi,
A newbie question.
I have a datatable that I populate and then attach it with an editor. After edit and submit, I send data using ajax to a JS function and update the database. Now I need to display the updated data back in the table. I did not understand on how to do that from Editor examples (Inline editing with submit button).
My snippet :
function populate_table(){
$('#mytable').dataTable().fnClearTable();
$('#mytable').dataTable().fnAddTable(all_components);
}
var editor;
$(document).ready(function(){
populate_table();
editor = new $.fn.dataTable.Editor({
table: "#mytable",
fields: [{
label:
type:
},
----
----
}
],
ajax: function (method, url, data, success, error){
refresh_table(data)
}
});
var cau_tab = $('#mytable').DataTable({
'data': [],
'columns': [{'data':'component'},
{'data':'version', editField: "version"},
{'data':'license'}
]
'pagingType':'full_numbers' });
cau_tab.on( 'click', 'tbody td:not(:first-child)', function (e) {
var myRow = this.parentNode;
editor.inline( this,{
buttons: { label: '>', fn: function () { this.submit(); } } } );
editor.on( 'preSubmit', function ( e, data ) {
data.rowData = cau_tab.row( myRow ).data();
} );
} );
I am calling "populate_table()" in "refresh_table" of Editor to update the table with it's new contents, but I don't see the editor features attached to it when it is refreshed.
Please suggest a way. Can I use "draw()" ? If so how?
Thank you
This question has accepted answers - jump to:
Answers
Hi,
Does your
refresh_tablefunction implement the client / server communication required by Editor. And if so, you should call thesuccesscallback function that is passed intoajaxwith the returned JSON data.Allan
Hi Allan,
Thank you for your response. my refresh_table function has calls to the backend to save the necessary data and now with your suggestion am passing the updated data to the success callback.
But my data is a "list of objects" where each object forms a row in the table. I pass the same to populate the table when the page loads:
$('#mytable').dataTable().fnAddTable(all_components);
But when I use this similar data structure with success callback, I get this error:
"uncaught typeerror cannot read property 'length' of undefined.
Looks like I am getting data correctly into the success callback, but for some it cannot be read by the datatable.
Thanks
Hi Allan,
I also tried similar to this:
I get -
Uncaught TypeError : b.any is not a function. Looks like this is from datatables.editor.min.js.
Please suggest a way.
Thank you
The
any()method was introduced in DataTables 1.10.8. Could you check which version you are using please?Allan
Allan, I am using DataTables Editor 1.5.0 and dataTable version 1.10.4.
Thanks,
Sushma
I have just updated to latest DataTables version. The above error went away.
Thanks Allan.
I still have problems displaying back my data though. I am working towards that.