Add row with row().data() and receiving
Add row with row().data() and receiving
I am new to DataTables and having some difficulty here.
When trying to add a row it does not handle the objects properly. In the dtable.row.add() I have the first object returning as [object HTMLTableCellElement] and the rest are filling the innerHTML properly. Problem is I need it to pass all info in the object so the classes take effect, as well as plaving all the innerHTML. My TR needs to have 3 classes(gradeA mainRow edited) and each TD (center) Can someone tell me what I am missing?
var dtable = $('#ledgerentrytable').DataTable();
dtable.destroy();
var table = document.getElementById("ledgerentrytable");
var rowCount = table.rows.length;
var rowMain = table.insertRow(-1);
$(rowMain).addClass("gradeA mainRow edited");
var cell1 = rowMain.insertCell(0);
var cell2 = rowMain.insertCell(1);
var cell3 = rowMain.insertCell(2);
var cell4 = rowMain.insertCell(3);
var cell5 = rowMain.insertCell(4);
var cell6 = rowMain.insertCell(5);
var cell7 = rowMain.insertCell(6);
var cell8 = rowMain.insertCell(7);
$(cell1).addClass("center");
$(cell2).addClass("center");
$(cell3).addClass("center");
$(cell4).addClass("center");
$(cell5).addClass("center");
$(cell6).addClass("center");
$(cell7).addClass("center");
$(cell8).addClass("center");
cell1.innerHTML = "<input type='text' class='validate[custom[onlyValidDate]], studfindisbursedate dateFormat hasDatepicker text' style='min-width:80px!important;' value='02/26/2018' id='dp1521062680108'>"; // Need to insert the VALUE and an ID
cell2.innerHTML = "<input type='text' class='validate[custom[onlyValidDate]], studfinpostdate dateFormat hasDatepicker' style='min-width:80px!important;' value='02/26/2018' id='dp1521062680109'>"; // Need to insert the VALUE and an ID
cell3.innerHTML = "<input type='text' class='amountValid' style='width:80px!important;' value='200.00'>";
cell4.innerHTML = "<input type='text' style='width:80px!important;' value='191'>";
cell5.innerHTML = "<div class='selector' id='uniform-selectProgramCode' title=''><span>PL</span><select class='styled selProgramCode' id='selectProgramCode' style='opacity: 0;'><option value=''>-</option><option value='1'>Agencies</option><option value='8'>Grants</option><option value='9'>IFP</option><option value='10'>Inst Scholarship</option><option value='11'>IoIFP</option><option value='12'>LG Grant</option><option value='13'>LG Scholarship</option><option value='16'>PL</option><option value='19'>S Grant</option><option value='20'>S Scholarship</option><option value='21'>Scholarships</option><option value='22'>SEOG MATCH</option><option value='23'>VEB</option></select>";
cell6.innerHTML = "<div class='selector' id='uniform-selectTrackingCode' title=''><span>Student Overage</span><select class='styled selTrackingCode' id='selectTrackingCode' style='opacity: 0;'><option value='1'>Enrollment Fee</option><option value='4'>Monthly Drawing</option><option value='2'>Over Contract Fee</option><option value='3'>Student Overage</option><option selected='selected' value='0'>-</option></select></div>";
cell7.innerHTML = "<div class='selector' id='uniform-selectTypeCode' title=''><span>DISB</span><select class='styled selTypeCode' id='selectTypeCode' style='opacity: 0;'><option value=''>-</option><option value='0'>ADJB</option><option value='1'>CASH</option><option value='2'>CARD</option><option value='3'>CNCL</option><option value='4'>DISB</option><option value='5'>MISC</option><option value='6'>REFD</option><option value='7'>WOFF</option></select></div>";
cell8.innerHTML = "";
dtable.row.add([ cell1, cell2.innerHTML, cell3.innerHTML, cell4.innerHTML, cell5.innerHTML, cell6.innerHTML, cell7.innerHTML, cell8.innerHTML, "", ""]).draw()
This question has an accepted answers - jump to answer
Answers
All of your other ones are using
.innerHTMLapart from your first one - that would explain the error.Allan
Hi Allan,
I understand that. I was kinda showing that I can only see data if it is assigned via .innerHTML. I can populate the tds but it is stripping all classnames and accompanying properties from them.
How can I send the data for the row's classname and the cells' classnames?
Ah I see what you mean. If you want to insert a DOM node, you need to construct the full
tr. If you pass atrelement torow.add()it will read and use the nodes, but there isn't any option to pass in individualtdelement I'm afraid.Allan
I feel like you mean that I need to setup the nodes in the
but am unclear exactly how to do it. I believe it would be
But this isnt working
When looking at this example
it shows only applying a row, no column properties and no example of actually adding classes. Also there's no destroy, when does that come in to play? I thought we had to destroy it right away it add to it.
When I add node() to my draw() I get an error stating that dtable.draw().node is NOT a function.
Ok So I have worked out that in order to add className to row I use this
But what about the TD? How do I add the className to that?
I tried adding
but that did not work. Do I have to re-declare the table and walk through that process a second time?
I was able to resolve with this
Yup - that would work. Although I was actually meaning that you should do something like:
Allan