diff --git a/packages/data-table-view/src/data-table-view.js b/packages/data-table-view/src/data-table-view.js index 7fb40cdb5881f3c161aae280b3e78930a7d229b7..6b56da42782156c7c1a420f48e01c4f58830b2b2 100644 --- a/packages/data-table-view/src/data-table-view.js +++ b/packages/data-table-view/src/data-table-view.js @@ -159,16 +159,19 @@ class DataTableView extends LitElement { } } - update_datatable(columns, rows) { - //console.log('rows = ' + rows); + update_datatable(columns, rows, is_first_page) { const that = this; if (this.table) { - columns.forEach(function (item, index) { - let i = that.display_columns.indexOf(item.title); - // console.log('item = {' + item.title + ', ' + item.visible + '} i = ' + i); - that.table.columns([i]).visible(item.visible == true); - // TODO that.table.columns([index]).title = item.title; - }); + // set column visibility/titles on first page load only + if (is_first_page) { + columns.forEach(function (item) { //, index) { + let i = that.display_columns.indexOf(item.title); + that.table.columns([i]).visible(item.visible === true); + // if column order has changed, update column title also + let t = that.table.columns([i]).header(); + $(t).html(item.title); + }); + } rows.forEach(row => this.table.row.add(row)); // now ready to draw this.table.draw(); @@ -208,14 +211,15 @@ class DataTableView extends LitElement { } } - that.update_datatable(columns, rows); + that.update_datatable(columns, rows, page === 1); if (!that.wait_until_all_loaded) that.is_loading = false; - return items.length; + return rows.length; }); } + async call_loader(page) { return await this.loader(page); }