Table

A functional and versatile component, the Table displays a list of records. Like a spreadsheet, selected fields are displayed as columns and records are listed as individual rows. The Table component is not only a way to display records, but also to search, edit, and add records.

Using the Table Component

Note

The content below assumes you have a Skuid page and at least one working model with fields selected and no conditions set.

The Table component is one of the basic building blocks of Skuid pages. To use the Table, start with the basics:

  • Drag and drop a Table onto a Skuid page.

  • Adjust the Table properties to customize the overall functionality of the table.

  • Add fields and adjust their Field properties to control the appearance and functionality of table columns.

    • Field types:
      • Model Field(s)
      • Template
      • Image

    Note

    The field window “remembers” the order in which you selected the fields. Check the field boxes in the order you want them to appear on the table.

Now, get creative:

  • Add filters to make it easier to dynamically sort records.
  • Use drawers to reveal additional data.
  • Create custom actions to affect one or more records.
  • Customize table views:
    • List records using images (such as headshots or logos) instead of text
    • Add a scrollbar to make it easier to navigate large tables
    • Freeze the header so it’s always visible, even when scrolling through the table
  • Customize table columns:
  • Allow users to Export data as a spreadsheet.
  • Click row header boxes to open mass update options.

It’s all possible with the Table component!

Basic Features

Click Add Features to add features to your table, including actions, filters, and views.

Add Actions

You can access Row Actions, Global Actions, and Mass Actions using the buttons at the bottom of the component, or via the Add Features menu on the component. Actions can then be updated by clicking on them at the bottom of the component.

Add Filters

You can filter data within a Table component using either the Filter Set component, or by adding a filter on the Table component itself (Add Features > Add Table Filter).

Learn more about creating filters.

Add Views

By default, Tables are displayed as a Standard List (list) view. However, you can also display your records as images using Photo ViewPhoto View or create your own view using Custom View Custom View.

Additional Table Features

Responsive tables

By default, tables have a horizontal format: multiple rows of records listed from top to bottom, divided by multiple columns set horizontally across the page. This works best for computer screens and tablets, whose aspect ratios reflect a display that can be wider than it is long:

image33

Users on mobile devices may need to see tables in a stacked format, rather than a horizontal one, due to the device’s screen size. The table property Make Table Mobile Responsive allows tables to automatically adjust how they look on a smaller screen size: each record is a “card” with the column headings (stacked in the same order as they display in the full page table) and a separator dividing each record from the one before it. (If the table includes Search, Add, Select, and Table Settings, these sit sit at the top of the card.)

Give users to control over columns

  • The Table property Allow Users to Reorder Columns lets users to open the fa-sliders Table Settings popup and drag and drop the column names to reorder them columns on the page.
  • The Field property Allow User to Show/Hide Column lets users open the fa-sliders Table Settings popup and choose whether the associated column will be visible on the page

Note

These settings persist whenever end users revisit the page, as they are stored in the Personalization framework.

image32

Character counters for text fields

Use a character counter in string and textarea fields [[]]

A character counter helps users know when they are approaching the content limit for text entry fields and encourages them to make input more succinct. Skuid property Show Length Counter adds a counter for string fields and the larger textarea fields:

  1. Click the string or textarea field within the component.
  2. In the Field Properties pane, check Show Length Counter.

When editing the field, users will now see a character countdown (“25/ 128”) that indicates the number of characters used (the first number) and how many total characters are allowed (the second number).

Note

  • The counter is enabled by default for standard textarea fields.
  • The counter is not available for Salesforce rich text area type fields.

Change the field character limits [[]]

When using the counter, the character limits are preset by the data source. (For example, Salesforce sets a limit of 128 characters for string fields, and 3200 characters for textarea fields). These limits are set by the field’s metadata.

To change the limit:

  1. Click the model with the field whose limit you want to override, then click Fields.
  2. Click the specific textarea or string field.
  3. In the Field Description pane, check Override field metadata.
    • Under Length, set the length to the desired number of characters.
  4. Click Save.

Shortcuts for currency fields

Currency shortcuts [[]]

Skuid allows the user several shortcuts when entering amounts into a table’s currency fields. While in Edit mode, the user enters the base amount (for example, 30) and adds:

  • K: Skuid interprets the number entered in thousands, appending three zeroes ($30,000)
  • M: Skuid interprets the number entered in millions, appending six zeroes ($30,000,000)
  • B: Skuid interprets the number entered in billions, appending nine zeroes ($30,000,000,000)

Note

The number does not change in format until the user exits Edit mode or saves the update to that record.

Best Practices

  • To learn how to limit the records displayed, read the Conditions topic.

Properties

Table Properties

The Table component has the following customizable properties.

Basic tab [[]]

  • Model: The model the Table will display data from.

    Note

    When you have multiple models, make sure you select the correct one!

  • Default Mode:

    • Read with Inline-Editing: Displays records in read mode on page load. Users can click fa-pencil Edit to convert to Edit mode. (Checked by default.)

    • Edit: Records display in edit mode on page load; users can toggle individual records to read mode by clicking fa-pencil Edit. Edit mode is best used for new, clone, and edit pages where you want all table rows open for editing.

    • Read-Only: Records display in read mode and cannot be edited.

      Note

      Skuid works with your data source’s security settings so users will not be able to edit records they don’t have permission to edit (even if the table is set to Edit mode). While you should not use this as a security measure, setting the Default Mode to Read-Only ensures that the end user can not edit the Table’s content on the page.

  • Allow Inline Record Creation: Includes an fa-plus-circle Add New [Record] button at the top of your table; user can click to add a new record without leaving the page.

  • Show Save/Cancel: Check to display the Save/Cancel buttons above the table. (Checked by default.)

  • Show Export Button: Check to display the fa-file-excel-o Export Table Data button at the bottom of the table, allowing users to export the entire table (or selected rows) as a spreadsheet. Once fa-file-excel-o is displayed, clicking it will show Export Properties in the Properties Pane.

  • Allow Users to Reorder Columns: If checked, allows users to reorganize their tables in the runtime page. (Checked by default.)

  • Make Table Mobile Responsive: Allows the table to adjust to the device’s screen size by stacking table elements instead of displaying them horizontally. (Checked by default.)

  • Sort Columns client-side: If a field on a table has Allow Sorting checked in the Field properties, additionally checking Sort Columns client-side means that Skuid will only sort the column field data that is currently loaded on the page. If users commonly need to sort only the data they have loaded within the page—as opposed to every record on the server—this property may speed the filter process.

Warning

If the server contains a large data set not yet loaded into the page, but Sort Columns client-side is set to Client, the data in the column will represent only a subset of the complete data set. This may result in unexpected omissions.

Display tab [[]]

  • Pagination

    • Visible Rows: Controls how many rows are visible in the table, or you can select “Show All.” The default setting is 10 rows; this choice is displayed at the bottom of the table and can be overridden by the users, who can also navigate through the “pages” of records.

      Note

      Searches, sorting, and filters will query the entire set of records—even the rows that haven’t been loaded into the table yet.

    • Always reset pagination after save or query: Click to reset to the first page after any edits or queries to the model.

  • Scrolling

    • Allow Scroll Bars: Displays scroll bars when the list of records exceeds screen size. (Unchecked by default.) The scroll bar will not display unless you add a value to Max Table Height.

      • Max Table Height (Optional): The height of the table, which can be set in pixels, em, percentage, vh or vw. Best practice: Start with a mid-range option (for example, 300 pixels), then preview it. Depending upon the size of your table, you may need to increase or decrease this until the scroll bar displays at the table’s right side.

      Note

      While this setting is optional, you must add a value if you want a visible scrollbar on the table, or if you want to freeze columns.

      • Keep Header Visible: If true, the column header remains visible at the top of the Table no matter how far a user scrolls down the page (This is also known as a “sticky header”).
      • Freeze Left Columns: Useful if you will have many columns in the Table; this freezes the first column (and any row actions) in the left side of the table. Users can scroll to the right to see the additional columns that may not fit on screen, while still seeing the important data in the initial column(s). This property is not visible until you add a value to Max Table Height.

      Warning

      If Freeze Left Columns is enabled for a Table that contains many rows (100+) in Salesforce Lightning Experience, the page may load extremely slowly.

      Note

      Freeze columns is not compatible with drawers.

      This feature works best with Chrome or Firefox browsers.

      • # of Columns To Freeze: Select the number of columns to freeze. This property is not visible until you add a value to Max Table Height.
  • Errors: Choose whether error messages appear inline (next to the field), or only inline if the user hovers over the field.

  • Advanced:

    • Button Position: Select where the Save/Cancel buttons and search bar display on the page: Left or Right sides.
    • Unique Id (optional): Skuid automatically generates an alphanumeric Id for the component; if preferred, give it a practical name.
    • CSS Class (optional): Assign a CSS class to the component’s DOM element.
    • Add New Records Icon: Click the icon selector to choose an icon that displays on the table to E*Add New Record*.
    • Table Settings Button Icon: Click the icon selector to choose an icon that displays above and right of the table to open the Table Settings dialog box.
    • Save Icon: Click the icon selector to choose the icon that displays on the Save button.
    • Cancel Icon: Click the icon selector to choose the icon that displays on the Cancel button.

Rendering tab [[]]

Conditional rendering allows you to display or hide the Table, based on defined data conditions.

Field Properties

Once fields are added to the Table component, each field has a specific set of properties. These properties vary, depending upon the field type. Click on the field within the table to reveal and edit its properties.

Show all sections

Basic tab [[]]

  • Field ID: The name of the selected field.

  • Custom Label: Use the field picker to select a field to use as the column label. This feature lets you choose another field’s name and re-label the column with it, to shorten or clarify the column’s identity or purpose for users.

  • Allow Sorting: Check this box to display buttons that allow users to sort the table by this column’s values, both ascending and descending.

    Note

    Columns with sorting allowed have clickable triangles: up-pointed triangles sort the column in Ascending (Z to A) order; down-pointed triangles sort the column in Descending (A to Z) order.

    Warning

    To retain record cohesion, sorting an individual column simultaneously reorders the rest of the table. For this reason, sorting should be used judiciously. It is also recommended not to use more than one sorted column per table.

  • Placeholder: Whenever a new row is created within the Table, this placeholder text appears until the user enters a value. Commonly used to provide instruction for more complex field requirements. This field is compatible with merge syntax.

  • Read-only: Check this box to prevent users from editing this field on this specific Skuid Table. This setting does not persist across Skuid pages.

    Note

    Skuid automatically respects the validation rules and field-level security from your data source.

  • Required: Check this box to require users to have data within this column when saving on this specific Skuid Table. This setting does not persist across Skuid pages and will not override existing data model settings within the data source.

    Note

    Skuid automatically respects the validation rules and field-level security from your data source.

  • None Option Label: In a picklist field, there is a “none” item for instances when the user doesn’t choose any of the picklist’s options. This property changes the label for that “none” item.

  • Column Summaries: (Number fields) Add summaries to the bottom of each column: Sum, Average, Min, Max, or Median.

  • # of Decimal Places: (Currency and measurement fields) Choose the number of decimal places. Options: 0-8 or use the field’s metadata to determine the number of decimal places.

  • Max Characters to Display: Determines the number of text characters to display within the column when the table is in Read mode; does not affect Edit mode, where the full length of the field’s value displays.

  • Column Width: The width of the column, in percentages (indicated as %) or pixels (indicated as px).

Warning

Do not mix the use percentages and pixels across columns. Choose one measurement format and stick with it.

  • Horizontal Alignment: Choose whether the column content is aligned left (default) or right.
  • Field Renderer: Determines how the column will actually display at runtime:

    • Standard: Use standard Skuid field renderers, which are based on the type of field selected. (Default setting.)
    • Password: Marks the field as a password input—hiding all characters as asterisks both in Read and Edit mode for all records in the table.
    • Custom (run a Snippet): Use custom-coded table field renderers to take advantage of Skuid’s JavaScript API.

    Warning

    This feature is best used by advanced users to solve specific user experience needs regarding to data display.

  • Allow Users to Show/Hide Column: Check to allow users to choose whether to show or hide this specific column through fa-sliders Table Settings.

  • Show Column by Default: If Allow Users to Show/Hide Column is marked true, this field determines whether a column is shown or not on page load. For large tables with many columns, consider unchecking this field for discretionary columns to give users more flexibility in the data they wish on page load, and prevent flooding the page with columns.

  • Show Length Counter: When the field is in Edit mode, it displays a character countdown (“25/ 128”) indicating the number of characters used and how many total characters are allowed.

    Note

    • The counter is enabled by default for standard textarea fields.
    • The counter is not available for Salesforce rich text area fields.
  • Rows to Display: Set the number of visible lines of text to display for text area fields. If left blank, the text area will auto-expand to display the full content.

Search tab [[]]

The Search tab is available for reference fields when the Table is in Edit mode. Search allows users to search for content from within the model (or from a selected model) when editing a reference field.

This tab lets you format the field search experience. (Looking for standard Search properties? See the Filters and Search tab.)

Search Properties
  • Option Source:
    • Automatic: Searches for and lists possible content options from within the object/entity the reference field is referencing.
    • Model: Searches for and lists possible content options from any model on the page.
  • Display Template: Select fields to use (via merge syntax) as the template for the returned list of items for a search.
  • Search Template: Select fields to use (via merge syntax) as the template for the Search list.
  • Visible Rows: Determines the amount of results available from the model (5, 10, 25, 50, Show all)
  • Option Model: If using “Model” as the Option source, the name of the model.
  • Tokenize autocomplete search: Instead of searching through records using search terms as a distinct phrase group, each word is “tokenized”—meaning they are searched for individually. A tokenized search for “George Washington” returns records with “George Washington,” George Michael Washington,” and “Washington—where George is from” because they contain all of the search terms, even if they’re in a different order. An untokenized search for “George Washington” returns only records with “George Washington” exactly.
Search Fields
  • Use SOSL to improve search performance: (Salesforce data source only) Use Salesforce’€™s specialized search language; this can improve search performance.

    Note

    There are some drawbacks to using SOSL, including the inability to search data on parent records.

  • Fields to order records by: Set how the returned items will be ordered using the field name and the order instructions. For example, Name ASC orders the list by name, from A to Z; Name DESC orders the list by name, from Z to A.

Filters tab [[]]

In partnership with the settings in the Search Tab, the Filters tab lets you create Lookup Filters for the reference fields to limit the search/display content provided when editing reference fields. returned in reference field lookups.

Set the following properties for Lookup Filter conditions:

  • Field: The field in the current model to use as a filter for the searchable reference field.
  • Operator: The relationship between the field and its filter content.
  • Content: The type of value used to filter the reference field’s data.
    • Single specified value: Returns records that meet the specified value.
      • Value: Indicate the value to filter by.
    • Multiple Specified Values: Returns records that meet at least one of the several specified values.
      • Values: Indicate the values to filter by; for each separate value click Add Another Value.
    • Page/URL Parameter value (Skuid on Salesforce): Returns records that meet the specified Salesforce Lightning page or URL parameter, for example, the id parameter.
      • Parameter: Indicates the specific parameter to filter by.
      • If this Parameter is not provided, then …
        • Set its value to Blank
        • Deactivate this Condition
        • Abort this Model’s Query
    • Running user attribute: Returns records if the value of a field on the model matches the value of a field on the current user’s record.
      • Userinfo Property: The value on the current user’s record to be used as a filter, usually an Id property.
    • Field from another model: Use a field from another model as the filter for the Lookup field.
      • Source Model: The name of the model.
      • Source Field: Field on the source model.
      • If no row in Source Model, then …
        • Deactivate this Condition
        • Abort this Model’s Query
    • None - blank value: Returns records only if the specified field is empty.
    • Another field from row: Returns records only if the field on the referenced record matches a separate field on that same record.
      • Depends On: Select the field to compare with.

Advanced tab [[]]

The Advanced tab displays for date- or time-related fields.

  • Show Month Picker: If checked, a Month picker is displayed during Edit Mode, to make it easy to jump to a specific month.
  • Show Year Picker: If checked, a Year picker is displayed during Edit Mode, to make it easy to jump to a specific year.
    • Year Picker Lower Bound and Year Picker Upper Bound: Sets the upper and lower boundaries of the list of possible years. Options include:
      • “Selected” measures from a date selected on the Date Picker. Increments are 1-10, 20, 30 40, 50, 60, 70, 80, 90, and 100.
      • “Today” measures from the current date. Increments are 1-10, 20, 30 40, 50, 60, 70, 80, 90, and 100.
  • Minute Picker Increment: For editable date-time fields, select the minute increments (1, 5, 10, 15, 20, 30) for the displayed Time Picker.

Rendering tab [[]]

Conditional rendering allows you to display or hide individual columns, based on defined data conditions.

  • Render Conditions: These conditions govern when a column will display.
    • Render if: The Model conditions that must be met to enable the field’s editing.
      • All Conditions are met
      • ANY Conditions are met
      • Custom Logic is met
        • Condition Logic: The custom logic for grouping and applying one or more conditions.
    • If hidden, Model field changes should be: If the field is hidden by conditional rendering, set whether any changes made to this field are saved in the model, or cancelled. Depending on the needs of your org, it could be bad user experience to update fields “behind-the-scenes,” especially when the user may be unaware of they are doing so.
      • Retained in Model (the default)
      • Cancelled
  • Enable Conditions: These conditions govern when a displayed column may or may not be edited.
    • Enable if: The model conditions that must be met to enable the field’s editing.
      • All Conditions are met
      • ANY Conditions are met
      • Custom Logic is met
        • Condition Logic: The custom logic for grouping and applying one or more conditions.
    • Message to show when disabled: The message displayed to the user when they attempt to interact with a disabled field. Appears as a tooltip after the user has hovered over the field for longer than a second.

Export Properties

Export properties allow users to configure and customize the data they’d like to export into a CSV file.

Export Options [[]]

Note

These properties only display if the Show Export Button is checked and the user clicks fa-file-excel-o Export Options in the footer of the Table component.

  • Use Table Columns as Export Columns: If checked, the Table will export all columns added to the Table. If unchecked, Export Columns is displayed in the Properties Pane allowing users to add new columns and customize which fields are exported.

Note

Checking Allow Users to Show/Hide Column on a field’s properties will not affect which columns are exported. If users hide columns within a Table, their export will still include all columns within the component.

  • Append Row Id Column: If checked, a column will be added to the export which contains the Id of each exported row.

  • Attempt to Load in all Records Before Export: If checked, Skuid will load every available record before exporting.

    Warning

    Some data sources may limit how many records are returned in one call. If a call tries to return records that exceed a data source’s stated limit, an error will be returned and the export will fail.

  • Custom File Name: If set, the value of this field will be used as custom name for the exported CSV file.

Export Columns [[]]

These properties allow users to configure and customize the columns they’d like to export into a CSV file.

Note

These properties only display if Use Table Columns as Export Columns is unchecked, a user has added at least one column, and the new column added under Export Columns is selected.

  • Column Type: The type of column used in the export:

    • Field: This option allows you to select a single field for export. Unselected columns will not be exported.
      • Field: The specific model field to export, selectable from picklist populated with fields from the connected model.
      • Header type: Determines what column header text is displayed in the exported CSV:
        • Use Field Label: If checked, the exported CSV will display the field’s Label metadata, which is often a less-technical, human-readable name. For example: Account Name or Employees
        • Use Field API name: If checked, the exported CSV will display the field API name, which is often used by systems for data import or other backend processes. For example: Name or NumberOfEmployees.
        • Custom label: If checked, the exported CSV will display a custom label instead of any associated label or API name.
          • Label: The custom text to be displayed as a column header.
    • Template: Use template column types to include multiple fields in one column through merge syntax.
      • Template: Specifies which fields the template should include by either selecting them from the field picker, manually entering their merge variables, or using custom text.
      • Label: The custom text to be displayed as a column header.

Views Properties

Views properties allow users to configure and customize the way Table data is displayed. Each view comes with its own set properties.

To add new views:

  1. Click fa-plus-circle Add View at the bottom of the Table component in the canvas.
  2. Select a view from the View Type drop down:
  • Standard
  • Photo
  • Custom

Photo [[]]

Display the records in your list as images by referencing an image field on the data source’s object/entity. Read the Photo View tutorial to learn more.

  • Image Source: Specifies what type of location the image will be pulled from. This can come in multiple forms as images can be referenced from a file, an external URL, and so on.
  • Image Field: Specifies the field which provides the images to be displayed when the user is on photo view.
  • Label Field: Determines the label applied to the image when it’s displayed in photo view.
  • On-Click URL: Specifies where the user is redirected when the image is clicked. Compatible with merge syntax.
  • Default Photo: Sets a default photo if an image field isn’t specified by the user.

Custom [[]]

Displays the records using a custom view governed by a JavaScript snippet.

  • View Icon: The icon displayed next to the view when a custom view item is added.
  • View Label: The name of the custom view, displayed in the views dropdown at runtime.
  • View Snippet: A snippet returning an object which defines the custom view.

Template fields

Add Template fields from the Add Fields dropdown on the Table.