# Row hiding

You can hide rows, using the HiddenRows plugin.

# About row hiding

"Hiding a row" means that the hidden row doesn't get rendered as a DOM element.

When you're hiding a row:

  • The source data doesn't get modified.
  • The HiddenRows plugin doesn't participate in data transformation
    (the shape of the data returned by the getData*() methods stays intact).

# Enabling row hiding

To simply enable row hiding (without further configuration), set the hiddenRows configuration option to true:

    # Setting up row hiding

    To set up your row hiding configuration, follow the steps below.

    # Step 1: Specify rows hidden by default

    To both enable row hiding and specify rows hidden by default, set the hiddenRows configuration option to an object.

    In the object, add a rows property, and set it to an array of row indexes.

    Now, those rows are hidden by default:

      # Step 2: Show UI indicators

      To easily see which rows are currently hidden, display UI indicators.

      To enable the UI indicators, in the hiddenRows object, set the indicators property to true:

      TIP

      If you use both the NestedHeaders plugin and the HiddenRows plugin, you also need to set the colHeaders property to true. Otherwise, indicators won't work.

        # Step 3: Set up context menu items

        To easily hide and unhide rows, add row hiding items to Handsontable's context menu.

        Enable both the ContextMenu plugin and the HiddenRows plugin. Now, the context menu automatically displays additional items for hiding and unhiding rows.

          You can also add the row hiding menu items individually, by adding the hidden_rows_show and hidden_rows_hide strings to the contextMenu parameter:

            # Step 4: Set up copy and paste behavior

            By default, hidden rows are included in copying and pasting.

            To exclude hidden rows from copying and pasting, in the hiddenRows object, set the copyPasteEnable property to false:

              # Row hiding API methods

              For the most popular row hiding tasks, use the API methods below.

              To see your changes, re-render your Handsontable instance with the render() method.

              # Accessing the HiddenRows plugin instance

              To access the HiddenRows plugin instance, use the getPlugin() method:

              const plugin = hot.getPlugin('hiddenRows');
              

              # Hiding a single row

              To hide a single row, use the hideRow() method:

              const plugin = hot.getPlugin('hiddenRows');
              
              plugin.hideRow(4);
              

              # Hiding multiple rows

              To hide multiple rows:

              • Either pass row indexes as arguments to the hideRow() method
              • Or pass an array of row indexes to the hideRows() method
              const plugin = hot.getPlugin('hiddenRows');
              
              plugin.hideRow(0, 4, 6);
              // or
              plugin.hideRows([0, 4, 6]);
              

              # Unhiding a single row

              To unhide a single row, use the showRow() method:

              const plugin = hot.getPlugin('hiddenRows');
              
              plugin.showRow(4);
              

              # Unhiding multiple rows

              To unhide multiple rows:

              • Either pass row indexes as arguments to the showRow() method
              • Or pass an array of row indexes to the showRows() method
              const plugin = hot.getPlugin('hiddenRows');
              
              plugin.showRow(0, 4, 6);
              // or
              plugin.showRows([0, 4, 6]);