diff --git a/.DS_Store b/.DS_Store index 5f5bfba..feca861 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/src/body-renderer.js b/src/body-renderer.js index b635fc3..1e05aab 100644 --- a/src/body-renderer.js +++ b/src/body-renderer.js @@ -16,6 +16,11 @@ export default class BodyRenderer { this.visibleRows = rows; this.visibleRowIndices = rows.map(row => row.meta.rowIndex); + if (rows.length === 0) { + this.bodyScrollable.innerHTML = this.getNoDataHTML(); + return; + } + const rowViewOrder = this.datamanager.rowViewOrder.map(index => { if (this.visibleRowIndices.includes(index)) { return index; diff --git a/src/style.js b/src/style.js index 97a397c..8214718 100644 --- a/src/style.js +++ b/src/style.js @@ -251,7 +251,8 @@ export default class Style { if (this.options.layout !== 'fluid') return; const wrapperWidth = $.style(this.instance.datatableWrapper, 'width'); - const firstRowWidth = $.style($('.dt-row', this.bodyScrollable), 'width'); + const firstRow = $('.dt-row', this.bodyScrollable); + const firstRowWidth = firstRow ? $.style(firstRow, 'width') : wrapperWidth; const resizableColumns = this.datamanager.getColumns().filter(col => col.resizable); const deltaWidth = (wrapperWidth - firstRowWidth) / resizableColumns.length; @@ -297,7 +298,7 @@ export default class Style { setBodyStyle() { const bodyWidth = $.style(this.datatableWrapper, 'width'); const firstRow = $('.dt-row', this.bodyScrollable); - const rowWidth = $.style(firstRow, 'width'); + const rowWidth = firstRow ? $.style(firstRow, 'width') : bodyWidth; let width = bodyWidth > rowWidth ? rowWidth : bodyWidth; $.style(this.bodyScrollable, {