Built with showFooterRow: true but withoutcreateFooterRow. The footer
elements are never created, so the grid must still construct normally and
getFooterRow() must return undefined rather than throwing.
Displaying a totals row at the end of the grid (createFooterRow,
showFooterRow, footerRowHeight).
Building footer cell content from the onFooterRowCellRendered event, and
releasing it again on onBeforeFooterRowCellDestroy.
Writing live values into a footer cell found with getFooterRowColumn(columnId) —
totals follow cell edits, column reorder and column changes.
Showing and hiding the footer at runtime with setFooterRowVisibility().
Pinned columns: the footer follows the grid's pinned column boundary, and
getFooterRowColumn() continues to resolve each total cell after pinning
changes and column updates.
The status box reports how many times the footer cell events fired for the last
rebuild — one render per visible column is correct.
A second grid shows the footer-less contract: showFooterRow without
createFooterRow constructs normally and getFooterRow() returns
undefined.
This example uses basic JSON data. It can easily be modified to accommodate a DataView.