Skip to content

Instantly share code, notes, and snippets.

@dshook
Created October 8, 2014 17:54
Show Gist options
  • Select an option

  • Save dshook/585c9d1eda543afa9252 to your computer and use it in GitHub Desktop.

Select an option

Save dshook/585c9d1eda543afa9252 to your computer and use it in GitHub Desktop.
ListToJSDataTable Create Table
function buildDataTable(table, id, extraclasses, includeFooter){
extraclasses = extraclasses || '';
includeFooter = includeFooter || false;
var sTbl = '<table cellpadding="0" cellspacing="0" border="0" class="table dataTable ' + extraclasses + '" id="' + id + '">';
sTbl += '<thead>';
for (var h in table.headers) {
var header = table.headers[h];
sTbl += '<tr ';
if (header.class) sTbl += 'class="' + header.class + '"';
sTbl += '>';
for (var th in header.cells) {
var headerCell = header.cells[th];
sTbl += '<th ';
if (headerCell.rowspan && headerCell.rowspan != 1) sTbl += 'rowspan="' + headerCell.rowspan + '"';
if (headerCell.colspan && headerCell.colspan != 1) sTbl += 'colspan="' + headerCell.colspan + '"';
sTbl += '>' + headerCell.value + '</th>';
}
sTbl += '</tr>';
}
sTbl += '</thead>';
if (includeFooter) {
sTbl += '<tfoot><tr></tr></tfoot>';
}
sTbl += '<tbody>';
for (var r in table.rows) {
var row = table.rows[r];
sTbl += '<tr ';
if (row.class) sTbl += 'class="' + row.class + '"';
sTbl += '>';
for (var th in row.cells) {
var dataCell = row.cells[th];
sTbl += '<td ';
if (dataCell.class) {
sTbl += 'class="' + dataCell.class + '"';
}
sTbl += '>';
if (dataCell.link) {
sTbl += '<a href="' + dataCell.link + '">';
}
sTbl += dataCell.value;
if (dataCell.link) {
sTbl += '</a>';
}
sTbl + '</td>';
}
sTbl += '</tr>';
}
sTbl += '</tbody>';
sTbl += '</table>';
return sTbl;
}
//grab the data and build a table
var params = {
start: formattedStartDate,
end: formattedEndDate
};
$.ajax({
url: '/api/FancyUrl?' + $.param(params)
}).done(function (results) {
var tableParams = results.options;
var table = $('#chartDiv')
.empty()
.append(buildDataTable(results.table, 'dailyreport', ''))
.find('#dailyreport')
.dataTable(tableParams);
$('#chartDiv').prepend('<h4>' + results.table.rows.length + ' Total</h4>');
}).fail(function (jqXHR, textStatus) {
//handle those problems
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment