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.
Method
Description
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.
Property
Description
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.
Property
Description
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>
Create applications with spreadsheet-like controls