Group rows

You can create a group of rows on your data grid during the initialization or after that, as below.

Changes from 9.5+
The group of rows now expect to receive a number of rows in the group and no longer an array of numbers.

Documentation

Methods

All methods related to row grouping.
MethodDescription
setRowGroup(number, numOfItems) Create a new collapsable group of rows.
setRowGroup(rowNumber: number, numOfItems: number) : void
resetRowGroup(number) Reset the row group.
resetRowGroup(rowNumber: number) : void
openRowGroup(number) Open a group of rows.
openRowGroup(rowNumber: number) : void
closeRowGroup(number) Close a group of rows.
closeRowGroup(rowNumber: number) : void


Events Settings

The following events related to row grouping.
PropertyDescription
oncreaterowgroup When the user creates a group of rows
oncreaterowgroup?: (worksheet: object, row: number, numOfItems: number) => void
onresetrowgroup When the user destroys a group of rows
onresetrowgroup?: (worksheet: object, row: number) => void
onopenrowgroup When the user opens a group of rows
onopenrowgroup?: (worksheet: object, row: number) => void
oncloserowgroup When the user closes a group of rows
oncloserowgroup?: (worksheet: object, row: number) => void


Initial Settings

It is possible to initiate the data grid with one or more groups of rows available for the user. There are two related properties to be used to this purpose.
PropertyDescription
group?: number The number of rows in this group.
state?: boolean Initial state of this group. Default: false (closed)


Examples

Basic collapsable row group.

How to create a data grid collapse rows on Jspreadsheet.






Source code

<html>
<script src="https://jspreadsheet.com/v9/jspreadsheet.js"></script>
<script src="https://jsuites.net/v5/jsuites.js"></script>
<link rel="stylesheet" href="https://jsuites.net/v5/jsuites.css" type="text/css" />
<link rel="stylesheet" href="https://jspreadsheet.com/v9/jspreadsheet.css" type="text/css" />

<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Material+Icons" />

<div id="spreadsheet"></div>

<input type="button" value="setRowGroup(0,5)" onclick="spreadsheet[0].setRowGroup(0,5)" />
<input type="button" value="resetRowGroup(0)" onclick="spreadsheet[0].resetRowGroup(0);" />

<script>
// Set your JSS license key (The following key only works for one day)
jspreadsheet.setLicense('MDZiOTdkYzhhODA4MjBiMTM3NmE3OTNlMDZhNzcyZGQyMGQyYTVjNWM4YTAzY2YyNzI2NGM1OGEwNWQ5YjU2MGExOGU5MDBmZDgwNTI5NzVkMDYyNDlmYmFmN2FiODUxN2Q1MzVkNGUzOWU5ODZkYzllMGZlMDJjZmIwMGFmYzYsZXlKdVlXMWxJam9pU25Od2NtVmhaSE5vWldWMElpd2laR0YwWlNJNk1UWTVOalE1TmpZME1Dd2laRzl0WVdsdUlqcGJJbXB6Y0hKbFlXUnphR1ZsZEM1amIyMGlMQ0pqYjJSbGMyRnVaR0p2ZUM1cGJ5SXNJbXB6YUdWc2JDNXVaWFFpTENKamMySXVZWEJ3SWl3aWQyVmlJaXdpYkc5allXeG9iM04wSWwwc0luQnNZVzRpT2lJek5DSXNJbk5qYjNCbElqcGJJblkzSWl3aWRqZ2lMQ0oyT1NJc0luWXhNQ0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owSWl3aVltRnlJaXdpZG1Gc2FXUmhkR2x2Ym5NaUxDSnpaV0Z5WTJnaUxDSndjbWx1ZENJc0luTm9aV1YwY3lKZExDSmtaVzF2SWpwMGNuVmxmUT09');

// Create the data
// Data
var data = [];

for (var j = 0; j < 50; j++) {
    data[j] = [];
    for (var i = 0; i < 50; i++) {
        data[j][i] = jspreadsheet.helpers.getColumnNameFromCoords(i, j);
    }
}

// Create a new spreadsheet
jspreadsheet(document.getElementById('spreadsheet'), {
    worksheets: [{
        data: data,
        tableOverflow: true,
        tableWidth: '800px',
        tableHeight: '400px',
        rows: { 6: { group: 5 }},
    }]
});
</script>
</html>