Datagrid Examples With Group

You can groups your data with e-datagrid-group.

<e-datagrid>
  <e-datagrid-layout-table>
    <e-datagrid-groups content-key="group"></e-datagrid-groups>
    <e-datagrid-column head="ID" content-key="id"></e-datagrid-column>
    <e-datagrid-column head="Name" content-key="name"></e-datagrid-column>
    <e-datagrid-filter-select label="Name" content-key="name"></e-datagrid-filter-select>
    <e-datagrid-filter-select label="Surname" content-key="surname" advanced></e-datagrid-filter-select>
  </e-datagrid-layout-table>
</e-datagrid>

<script>
  const generateDummyData = (length = 10) => {
    const groups = ['a', 'b', 'c', 'd'];
    const firstNames = ['John', 'Jane', 'Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', 'Grace', 'Henry'];
    const lastNames = ['Doe', 'Smith', 'Johnson', 'Brown', 'Davis', 'Wilson', 'Taylor', 'Anderson', 'Thomas', 'Moore'];

    const getRandomName = () => {
      let randomIndex = Math.floor(Math.random() * firstNames.length);
      const firstName = firstNames[randomIndex];

      randomIndex = Math.floor(Math.random() * lastNames.length);
      const lastName = lastNames[randomIndex];

      return [firstName, lastName].join(' ');
    };

    const getRandomGroup = () => {
      const randomIndex = Math.floor(Math.random() * groups.length);
      return groups[randomIndex];
    };

    const dummyData = [];
    for (let i = 0; i < length; i++) {
      dummyData.push({
        id: i,
        group: getRandomGroup(),
        name: getRandomName(),
      });
    }

    return dummyData;
  };

  const data = generateDummyData();

  document.querySelector('e-datagrid').data = data;
</script>
Selector
datagrid.searchInput
datagrid.viewSettingsButton
datagrid.viewSettings.column.{contentKey}
datagrid.viewSettings.hideButton.{contentKey}
datagrid.viewSettings.sortButton.{contentKey}
datagrid.viewSettings.resetButton
datagrid.toggleFiltersButton
datagrid.filters.clearButton
datagrid.filters.rememberSettings:switch.input
datagrid.filters.{contentKey}:select.input
datagrid.filters.{contentKey}:multiselect.input
datagrid.filters.{contentKey}.operator:select.input
datagrid.filters.{contentKey}:switch.input
datagrid.filters.{contentKey}:datetime
datagrid.action.primary
datagrid.action.secondary
datagrid.action.dropdownOpener
datagrid.action.dropdown.{buttonIndex}
datagrid.toggleBulkActionsButton
datagrid.bulk-action.{buttonIndex}
datagrid.bulk-action-dropdown.{dropDownIndex}:dropdown
datagrid.bulk-action-dropdown.{dropDownIndex}.button.{buttonIndex}
datagrid.bulk-action-checkbox-dropdown:dropdown
datagrid.bulk-action-checkbox-dropdown.selectVisible
datagrid.bulk-action-checkbox-dropdown.deselectVisible
datagrid.bulk-action-checkbox-dropdown.selectAll
datagrid.bulk-action-checkbox-dropdown.deselectAll
datagrid.bulk-action-checkbox-dropdown.selectAllFilteredItems
datagrid.bulk-action-checkbox-dropdown.deselectAllFilteredItems
datagrid.toggleSetPriorityButton
datagrid.priority.exitButton
datagrid.priority.moveTopButton
datagrid.priority.moveUpButton
datagrid.priority.moveDownButton
datagrid.priority.moveBottomButton
datagrid.sortButton.{contentKey}
datagrid.columnSettings.{contentKey}
datagrid.row.{rowIndex}
datagrid.cell.{rowIndex}.{contentKey}
datagrid.row.{rowIndex}.bulkCheckbox
datagrid.row.{rowIndex}.prioritySelector
datagrid.row.{rowIndex}.item-action.{iconName}
datagrid.pageSizeSelector:select.input
datagrid:pagination.pageButton.{buttonIndex}
datagrid:pagination.prevButton
datagrid:pagination.nextButton
datagrid.default-empty-state:illustrated-message
datagrid.server-error-empty-state:illustrated-message
datagrid.no-visible-column-empty-state:illustrated-message
<e-datagrid layout="card">
  <e-datagrid-layout-table>
    <e-datagrid-groups content-key="group"></e-datagrid-groups>
    <e-datagrid-column head="ID" content-key="id"></e-datagrid-column>
    <e-datagrid-column head="Name" content-key="name"></e-datagrid-column>
  </e-datagrid-layout-table>
    <e-datagrid-layout-card>
    <e-datagrid-groups content-key="group"></e-datagrid-groups>
    <e-datagrid-column head="ID" content-key="id"></e-datagrid-column>
    <e-datagrid-column head="Name" content-key="name"></e-datagrid-column>
  </e-datagrid-layout-card>
</e-datagrid>

<script>
  const generateDummyData = (length = 10) => {
    const groups = ['a', 'b', 'c', 'd'];
    const firstNames = ['John', 'Jane', 'Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', 'Grace', 'Henry'];
    const lastNames = ['Doe', 'Smith', 'Johnson', 'Brown', 'Davis', 'Wilson', 'Taylor', 'Anderson', 'Thomas', 'Moore'];

    const getRandomName = () => {
      let randomIndex = Math.floor(Math.random() * firstNames.length);
      const firstName = firstNames[randomIndex];

      randomIndex = Math.floor(Math.random() * lastNames.length);
      const lastName = lastNames[randomIndex];

      return [firstName, lastName].join(' ');
    };

    const getRandomGroup = () => {
      const randomIndex = Math.floor(Math.random() * groups.length);
      return groups[randomIndex];
    };

    const dummyData = [];
    for (let i = 0; i < length; i++) {
      dummyData.push({
        id: i,
        group: getRandomGroup(),
        name: getRandomName(),
      });
    }

    return dummyData;
  };

  const data = generateDummyData();

  document.querySelector('e-datagrid').data = data;
</script>
Selector
datagrid.searchInput
datagrid.viewSettingsButton
datagrid.viewSettings.column.{contentKey}
datagrid.viewSettings.hideButton.{contentKey}
datagrid.viewSettings.sortButton.{contentKey}
datagrid.viewSettings.resetButton
datagrid.toggleFiltersButton
datagrid.filters.clearButton
datagrid.filters.rememberSettings:switch.input
datagrid.filters.{contentKey}:select.input
datagrid.filters.{contentKey}:multiselect.input
datagrid.filters.{contentKey}.operator:select.input
datagrid.filters.{contentKey}:switch.input
datagrid.filters.{contentKey}:datetime
datagrid.action.primary
datagrid.action.secondary
datagrid.action.dropdownOpener
datagrid.action.dropdown.{buttonIndex}
datagrid.toggleBulkActionsButton
datagrid.bulk-action.{buttonIndex}
datagrid.bulk-action-dropdown.{dropDownIndex}:dropdown
datagrid.bulk-action-dropdown.{dropDownIndex}.button.{buttonIndex}
datagrid.bulk-action-checkbox-dropdown:dropdown
datagrid.bulk-action-checkbox-dropdown.selectVisible
datagrid.bulk-action-checkbox-dropdown.deselectVisible
datagrid.bulk-action-checkbox-dropdown.selectAll
datagrid.bulk-action-checkbox-dropdown.deselectAll
datagrid.bulk-action-checkbox-dropdown.selectAllFilteredItems
datagrid.bulk-action-checkbox-dropdown.deselectAllFilteredItems
datagrid.toggleSetPriorityButton
datagrid.priority.exitButton
datagrid.priority.moveTopButton
datagrid.priority.moveUpButton
datagrid.priority.moveDownButton
datagrid.priority.moveBottomButton
datagrid.sortButton.{contentKey}
datagrid.columnSettings.{contentKey}
datagrid.row.{rowIndex}
datagrid.cell.{rowIndex}.{contentKey}
datagrid.row.{rowIndex}.bulkCheckbox
datagrid.row.{rowIndex}.prioritySelector
datagrid.row.{rowIndex}.item-action.{iconName}
datagrid.pageSizeSelector:select.input
datagrid:pagination.pageButton.{buttonIndex}
datagrid:pagination.prevButton
datagrid:pagination.nextButton
datagrid.default-empty-state:illustrated-message
datagrid.server-error-empty-state:illustrated-message
datagrid.no-visible-column-empty-state:illustrated-message
<e-datagrid>
  <e-datagrid-layout-table>
    <e-datagrid-groups content-key="group" groups='[{"value": "b", "label": "Beta Group" }, {"value": "a", "label": "Alpha Group"}]'></e-datagrid-groups>
    <e-datagrid-column head="ID" content-key="id"></e-datagrid-column>
    <e-datagrid-column head="Name" content-key="name"></e-datagrid-column>
  </e-datagrid-layout-table>
</e-datagrid>

<script>
  const generateDummyData = (length = 10) => {
    const groups = ['a', 'b', 'c'];
    const firstNames = ['John', 'Jane', 'Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', 'Grace', 'Henry'];
    const lastNames = ['Doe', 'Smith', 'Johnson', 'Brown', 'Davis', 'Wilson', 'Taylor', 'Anderson', 'Thomas', 'Moore'];

    const getRandomName = () => {
      let randomIndex = Math.floor(Math.random() * firstNames.length);
      const firstName = firstNames[randomIndex];

      randomIndex = Math.floor(Math.random() * lastNames.length);
      const lastName = lastNames[randomIndex];

      return [firstName, lastName].join(' ');
    };

    const getRandomGroup = () => {
      const randomIndex = Math.floor(Math.random() * groups.length);
      return groups[randomIndex];
    };

    const dummyData = [];
    for (let i = 0; i < length; i++) {
      dummyData.push({
        id: i,
        group: getRandomGroup(),
        name: getRandomName(),
      });
    }

    return dummyData;
  };

  const data = generateDummyData();

  document.querySelector('e-datagrid').data = data;
</script>
Selector
datagrid.searchInput
datagrid.viewSettingsButton
datagrid.viewSettings.column.{contentKey}
datagrid.viewSettings.hideButton.{contentKey}
datagrid.viewSettings.sortButton.{contentKey}
datagrid.viewSettings.resetButton
datagrid.toggleFiltersButton
datagrid.filters.clearButton
datagrid.filters.rememberSettings:switch.input
datagrid.filters.{contentKey}:select.input
datagrid.filters.{contentKey}:multiselect.input
datagrid.filters.{contentKey}.operator:select.input
datagrid.filters.{contentKey}:switch.input
datagrid.filters.{contentKey}:datetime
datagrid.action.primary
datagrid.action.secondary
datagrid.action.dropdownOpener
datagrid.action.dropdown.{buttonIndex}
datagrid.toggleBulkActionsButton
datagrid.bulk-action.{buttonIndex}
datagrid.bulk-action-dropdown.{dropDownIndex}:dropdown
datagrid.bulk-action-dropdown.{dropDownIndex}.button.{buttonIndex}
datagrid.bulk-action-checkbox-dropdown:dropdown
datagrid.bulk-action-checkbox-dropdown.selectVisible
datagrid.bulk-action-checkbox-dropdown.deselectVisible
datagrid.bulk-action-checkbox-dropdown.selectAll
datagrid.bulk-action-checkbox-dropdown.deselectAll
datagrid.bulk-action-checkbox-dropdown.selectAllFilteredItems
datagrid.bulk-action-checkbox-dropdown.deselectAllFilteredItems
datagrid.toggleSetPriorityButton
datagrid.priority.exitButton
datagrid.priority.moveTopButton
datagrid.priority.moveUpButton
datagrid.priority.moveDownButton
datagrid.priority.moveBottomButton
datagrid.sortButton.{contentKey}
datagrid.columnSettings.{contentKey}
datagrid.row.{rowIndex}
datagrid.cell.{rowIndex}.{contentKey}
datagrid.row.{rowIndex}.bulkCheckbox
datagrid.row.{rowIndex}.prioritySelector
datagrid.row.{rowIndex}.item-action.{iconName}
datagrid.pageSizeSelector:select.input
datagrid:pagination.pageButton.{buttonIndex}
datagrid:pagination.prevButton
datagrid:pagination.nextButton
datagrid.default-empty-state:illustrated-message
datagrid.server-error-empty-state:illustrated-message
datagrid.no-visible-column-empty-state:illustrated-message
New AI Feature!

Try our new AI skill to implement designs easier and faster with guided generation and best-practice patterns. For more info, visit this page.