Infinite Columns Horizontal Scroll Data Table with Fixed First Column
This block allows a user to view a list of things in a mobile-friendly data table format and apply additional filters to the list. This block is useful when you need to display a high number of columns on desktop and mobile, with a fixed column on the left. The table is horizontally scrollable at all times (similar to an Excel spreadsheet).
Desktop to Mobile Example
This block contains an empty state group when there aren't any entries in the data table repeating group
- When this block is added to a page, it is placed within a group called
Group page860Group. This group contains the responsive settings for all modules.
- This block contains these main groups:
Group Main content container- contains the data table elements and the empty state elements
Group Main table- contains the table column data (each column has its own hiding rule)
Group Main table row container- contains the
horizontaltable_fixedfirstcolumn_templatereusable element and the placeholder group.
horizontaltable_fixedfirstcolumn_templatereusable element - contains the list of things that will be displayed in the data table. This repeating group's data source should be changed from "Dummy" to the type of content that you will display.
RepeatingGroup Website (DO NOT CHANGE - for horizontal scroll functionality only)- used to make the right side elements horizontally scrollable. Do not delete or modify this element. The repeating group must always contain a single entry for this workaround.
Group Main table headings section- contains the data table's column headings.
Repeating Group Dummys (infinite horizontal scroll)- contains the list of things that will be displayed in the data table. This repeating group's data source should be changed from "Dummy" to the type of content that you will display.
Group Inner customer desktop column title- contains the fixed first column's title.
Repeating Group Dummys (fixed-column)- This repeating group allows for the fixed-first column design. This repeating group's data source should exactly match the right-side, scrollable data table. Because the fixed, first column is in a separate repeating group from the scrollable content on its right, the repeating groups must always have the same row size and data source to ensure that everything looks like one table.
Group Main empty state- This group can become visible when the data table repeating group contains 0 entries.
- Since this data table is within a reusable element, it can only be filtered through custom states that are on the reusable element copy itself. For example if you are looking to display a list of users using this design, the first cloned copy of this reusable can be called
Create a copy of the horizontaltable_template element to display different data types with this design
- This repeating group's data source can then be modified and placed on any page in your app.
- If you wish to create another horizontally scrollable data table with the
horizontaltable_fixedfirstcolumn_templatereusable element, you can make another copy of it (e.g.,
horizontaltable_fixedfirstcolumn_template), in order to display another data type (e.g., Invoices).
- New copies of this reusable element must be created each time you wish to display different types of data, different columns, and/or different fields in this data table.
1. Since this data table is within a reusable element, it can only be filtered through custom states that are on the reusable element copy itself. First, make a copy of this reusable element:
2. In order to add custom states to this copy, make sure that you are viewing the copied reusable element (e.g.,
fixedtable_usersin this example) and not the
3. Double-click on the copy of the reusable element in order to open its property editor, and click on the "i" icon in order to add a custom state (e.g., keyword filter, type: text, list: no).
Add a custom state to this reusable element
4. Once this custom state is in place, we can change the data source of the side-by-side repeating groups within the reusable element. To do this, adjust the data source and add a constraint to the
Repeating Group Dummys (infinite horizontal scroll)element and the
Repeating Group Dummys (fixed-column)element in order to display a different custom type and add constraints which utilize these custom state values.
Modify the data source of the left-side repeating group to utilize the keyword filter custom state
Repeat this process, and modify the data source of the right-side repeating group to utilize the keyword filter custom state
5. Back on the page where we first added the
horizontaltable_fixedfirstcolumn_templateblock, we can delete the instance of the template that was added by the extension, and replace it with the copied version (e.g., a
fixedtable_users). Here is a short video which shows how to do this:
6. Similar to how we made a copy of the horizontaltable_template reusable element, we can make a copy of the
new_applyfiltersreusable element that is unique to this data table:
7. Next, add any form elements and custom states to this
new_applyfilters_usersreusabe element, by opening the property editor and adding each custom state:
8. Because the user will be entering keywords to filter results within this group focus element's
Input keywordelement, we need to set the value of the
new_applyfilters_users"keyword filter" custom state (and any other custom state value) through a workflow. These values can be set when the
new_applyfilters_users"Apply Filters" button is clicked:
9. Now that the workflow is set up to store the value of this custom state each time a User clicks "apply filter", we can access this custom state's value on any page that contains a copy of this
new_applyfilters_users. and use it to filter the repeating group within the
fixedtable_usersreusable element. To do this, navigate back to the page and replace the
new_applyfiltersreusable with the copy that you just modified (e.g.,
10. In order to In order to set this up, add a "Do When Condition is True" (Every Time) workflow, which sets the "keyword filter" custom state value of the
fixedtatable_usersreusable element on the page, to be equal to the value of this "keyword filter" custom state value of the
new_applyfilters_users. reusable element on the page. Here is an example that shows how to set this workflow up:
Group Main empty stateelement can become visible when the data table repeating group contains 0 entries. It is currently not possible to access the Repeating Group Dummy's number of entries (since it is within a reusable element). However, you can add a conditional on this group which uses the repeating group's data source expression, so that this empty state becomes visible when the count of that same search is 0 (similar to the example below)