* Add a data array to the table, creating DOM node etc. This is the parallel to * _fnGatherData, but for adding rows from a Javascript source, rather than a * DOM source. * @param {object} settings dataTables settings object * @param {array} data data array to be added * @param {node} [
(settings, dataIn, tr, tds)
| 2427 | * @memberof DataTable#oApi |
| 2428 | */ |
| 2429 | function _fnAddData(settings, dataIn, tr, tds) { |
| 2430 | /* Create the object for storing information about this new row */ |
| 2431 | var rowIdx = settings.aoData.length |
| 2432 | var rowModel = $.extend(true, {}, DataTable.models.oRow, { |
| 2433 | src: tr ? "dom" : "data", |
| 2434 | idx: rowIdx |
| 2435 | }) |
| 2436 | |
| 2437 | rowModel._aData = dataIn |
| 2438 | settings.aoData.push(rowModel) |
| 2439 | |
| 2440 | var columns = settings.aoColumns |
| 2441 | |
| 2442 | for (var i = 0, iLen = columns.length; i < iLen; i++) { |
| 2443 | // Invalidate the column types as the new data needs to be revalidated |
| 2444 | columns[i].sType = null |
| 2445 | } |
| 2446 | |
| 2447 | /* Add to the display array */ |
| 2448 | settings.aiDisplayMaster.push(rowIdx) |
| 2449 | |
| 2450 | var id = settings.rowIdFn(dataIn) |
| 2451 | if (id !== undefined) { |
| 2452 | settings.aIds[id] = rowModel |
| 2453 | } |
| 2454 | |
| 2455 | /* Create the DOM information, or register it if already present */ |
| 2456 | if (tr || !settings.oFeatures.bDeferRender) { |
| 2457 | _fnCreateTr(settings, rowIdx, tr, tds) |
| 2458 | } |
| 2459 | |
| 2460 | return rowIdx |
| 2461 | } |
| 2462 | |
| 2463 | /** |
| 2464 | * Add one or more TR elements to the table. Generally we'd expect to |
no test coverage detected