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:
    • Add a scrollbar to make it easier to navigate large tables
  • 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!

Table Headers

Every Table includes a header and a footer. Depending upon the property settings, these sections can include:

  • Header
    • the Table’s title
    • the Save and Cancel buttons
    • a search box
    • the icon to open Configure table and Export table data
    • the Mass Actions checkbox
    • (there can also be filters in the header)
  • Footer
    • a picklist to set number of records displayed per page
    • an indicator of which set of rows are showing and links to jump to the next or last increment

The component’s header and footer can be hidden using properties in the Basic tab.

Sticky headers

If the height of the Table component is shorter than the amount of data being displayed—in other words, the Table contains more records than can be seen at one time on the screen—the end user can scroll through the data. In this case, the header remains visible at the top of the Table (a “sticky header”) no matter how far a user scrolls down.

Note

If using IE 11, the header will not “stick” but instead scroll out of sight.

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 and configuring filters.

Additional Table Features

Give end users control over columns [[]]

  • The Table property Allow Users to Reorder Columns (located in the Display tab) lets drag and drop column headers to reorder them on the page.
  • The Table property Allow Column Hiding lets users open the Configure table modal 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.

Character counters for text fields [[]]

A character counter helps end users know when they are approaching the content limit for text entry fields and encourages them to make input more succinct. 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/255”) 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 limits for string fields and 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’s description pane, check Override field metadata.
    • Under Length, set the length to the desired number of characters.
  4. Click Save.

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. End users can click edit Edit to convert to Edit mode. (Checked by default.)
    • Edit: Records display in edit mode on page load; end users can toggle individual records to read mode by clicking edit 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 Users to Sort by Column: Check this box to display buttons that allow end users to sort the table by this column’s values, both ascending and descending. (Checked by default.)

    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.

  • 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 end 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.

  • Enable Export: Check to display the Export Table Data option in the More Actions dialog, allowing end users to export the entire table (or selected rows) as a spreadsheet. See Export properties.

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

  • Table Title: The title that displays above the Table. (If left blank, the Table does not have a title.)

Search tab [[]]

In this tab are properties that control whether or not you have a search box, and when search terms and conditions are applied.

Search Properties [[]]
  • Show Search Box: If checked, Skuid displays a search box above the component.

  • Search Method: Determines if a search will query the server and filter its data, or filter local data on the client.

    • Server (default): Returns search results from all data on the server.

    • Client: Returns search results from only the data that is currently loaded on the page. Large data sets may require lengthy time to filter. If end 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 Search Method is set to Client, the filter may return incomplete results because it’s filtering incomplete data. This may result in unexpected omissions.

  • Tokenize Search Terms: If checked, each word typed into the search bar is “tokenized” — meaning each word is searched for individually. A tokenized search for “George Washington” returns any record with “George” and “Washington”. For example, “George Washington,” “George Michael Washington,” and “George is headed to Washington”. An untokenized search for “George Washington” returns only records with “George Washington” exactly.

  • Search box placeholder text: The text that appears in the search box before the end user starts a search. (The default is “Search.”)

  • Empty Search Behavior lets you determine what happens when the search box is emptied.

    • Re-query for Model Data (default): The data displayed in the component returns to the state it was in when you first loaded the page.

    • Remove all Model Data: The data is removed from the component and its associated model (but not from the data object/entity).

      Note

      Why do this? If you want to use a component to display the list of search results—handy when you have a lot of search results—you need to have an empty component each time you do a new search, so you can display the newly returned results in it. Without this property, the component’s model will be re-queried when the text is cleared from the search box.

Search Fields [[]]

Specifies which fields will be searched against from the component’s search bar.

Note

Depending on the data source used for the model attached to the component, this property may not be available.

  • Use SOSL to improve search performance (Salesforce data sources only): SOSL quickly can search multiple objects at a time within a single search query. SOSL does not directly search the database, but instead queries an index of Salesforce text fields. Individual search fields may not be added when this property is enabled.

    Warning

    Because the search is against the index, results are limited to what is present in the index, and will not include data that may have been recently updated in the database. The index updates very quickly, but expect a delay of up to 30 seconds between changes made to the database, and their appearance in the search results.

    Note

    SOSL can search Text fields (including Long Text fields), but not Picklist fields and Reference fields.

    • Fields to Search: Sets which Types of fields to query with SOSL. The options are:

      • Name Fields (default)
      • All Text Fields
      • Email Field
      • Phone Fields
      • SideBar Fields (Name, Phone, Email, External Ids)

      Searches on Salesforce data sources can use one of two query languages: SOQL or SOSL. SOQL can only search one object at a time in a single query, but searches all searchable fields in that object in real-time.

  • Fields: Skuid searches on searchable fields by default. Search can be narrowed to individual fields by clicking add Add new Search Field, and then using the field picker to select the field.

    Note

    • (Salesforce data sources only) SOQL can search Picklist fields and Reference fields, but not Long Text fields.
    • You can add multiple search fields.
    • Search Operator: Select from the following logical operators:

      • =
      • starts with
      • Contains
Skuid on Salesforce [[]]

By default, Salesforce Objects use SOQL. To ensure proper functionality, enable the Allow Search property on any Salesforce objects to be included in the search.

For more information on using these search options with Salesforce, check out Salesforce’s SOQL and SOSL Reference Guide.

Display tab [[]]

Pagination section[[]]
  • 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 end 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.

  • Show Page Size Dropdown: Checked by default, this displays a page size indicator at the bottom of the list. This indicator allows end users to chose to display more or fewer records per page, overriding the Visible Rows setting.

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

Height/Scrolling section [[]]
  • Height Strategy:

    • Fit to Content: This sizes the wrapper to fit the components within.
      • Max Height (optional): The maximum height of the Wrapper component. Options are:
        • None
        • Short
        • Medium
        • Tall
        • Custom
      • Min Height (optional): The minimum height of the Wrapper component. Options are:
        • None
        • Short
        • Medium
        • Tall
        • Custom
    • Fixed Height: Sets an absolute width.

      • Height:
        • Fit to Content
        • Short
        • Medium
        • Tall
        • Custom
Drawers section[[]]
  • Enable Drawers: When checked, Skuid adds a > (Left Arrow) at the head of the row of fields on the table. Click this arrow to open the Drawer Properties pane with the following options:
Configuration section [[]]
  • Allow Users to Reorder Columns: If checked, allows end users to reorganize their tables in the runtime page by dragging and dropping the column headers to new locations. (Checked by default.)
  • Allow Column Hiding: Check to allow end users to choose whether to show or hide this specific column using the Configure table dialog.
    • More Actions Button Icon: The icon that opens the More Actions dialog, allowing end user to select Configure table or Export table data. Click the icon selector to choose the icon.
Advanced section [[]]
  • Unique Id (optional): Skuid automatically generates an alphanumeric Id for the component; if preferred, give it a practical name.
  • Enable Adaptive Columns: If checked, columns will adapt the to size of the content.
Other section [[]]
  • Row Actions on Left: By default, Row Actions are displayed on the right.If checked, they will be displayed on the left.

  • Show Row Numbers: If checked, each row is numbered, with the digits displayed in the far left column

  • Hide Header: If checked, the Table header does not display.

  • Hide Footer: If checked, the Table footer does not display.

    Note

    Hide Header/Hide Footer supersedes any settings for individual elements in the Header or Footer. For example, if Show Save/Cancel is checked—which displays the Save and Cancel buttons—but Hide Header is also checked, the Save and Cancel buttons (which sit within the header) will not display because the header is hidden.

Styles tab [[]]

Global styles for this component are set in the :docs_url:`Design System Studio <skuid/design-system-studio>`. The following Style properties can be adjusted for an individual page.

  • Style Variant: Style variants are created and set in the Design System Studio. Some components have pre-defined variants for a specific aspect of a component’s style. Also, Skuid Builders can style and customize elements to create their own themes within the DSS. These themes will dynamically populate as selectable values in the Style Variant dropdown menu.

  • Spacing: Sets the spacing of the Header relative to other components on the page. Spacing can be managed for Top Margin, Bottom Margin, Left Margin, Right Margin. All margins can be set to one of the following:

    • None
    • Extra Small
    • Small
    • Reduced
    • Regular
    • Increased
    • Large
    • Extra Large
    • Huge

    Note

    These sizes are relative to one another; the baseline is determined by Design System settings.

Display Logic tab [[]]

Standard display logic options are available.

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.

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 end users.

  • Read-only: Check this box to prevent end 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 end 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.

  • Column Width (Fixed): The fixed 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.

  • Clip Heading Text: If checked, if a column’s heading text exceeds the size of the column, the text is truncated (with ellipses indicating additional content.)

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

  • 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.
  • Column Summaries: (Number fields) Add summaries to the bottom of each column: Sum, Average, Min, Max, or Median.: Enter the value as a

    • Minimum Value: The starting numerical range for the stepper.
    • Maximum Value: The ending numerical range for the stepper
    • Step: The increments used in the stepper.
  • # 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.

  • Display As: Determines how numeric values are entered in Edit mode.

    • Number: Enter the value as a number.
    • Slider: Enter the value as a position on a slider.
      • Minimum Value: The starting numerical range for the slider.
      • Maximum Value: The ending numerical range for the slider
      • Step: The increments used in the slider.
    • Stepper: Enter the value via an entry box with “+” and “-” handles to increment or decrement the numeric value
      • Minimum Value: The starting numerical range for the stepper.
      • Maximum Value: The ending numerical range for the stepper
      • Step: The increments used in the stepper.
  • 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 end 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 Table Search topic.)

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.
      • Option Model: If using “Model” as the Option source, the name of the model.
  • 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)
  • Tokenize autocomplete search: If checked, each word typed into the search bar is “tokenized” — meaning each word is searched for individually. A tokenized search for “George Washington” returns any record with “George” and “Washington”. For example, “George Washington,” “George Michael Washington,” and “George is headed to Washington”. An untokenized search for “George Washington” returns only records with “George Washington” exactly.
Search Fields [[]]

Specifies which fields will be searched against from the component’s search bar.

  • Search Fields: Specifies which fields will be searched against from the component’s search bar.

    Note

    Depending on the data source used for the model attached to the component, this property may not be available.

    • Use SOSL to improve search performance (Salesforce data sources only): SOSL quickly can search multiple objects at a time within a single search query. SOSL does not directly search the database, but instead queries an index of Salesforce text fields. Individual search fields may not be added when this property is enabled.

      Warning

      Because the search is against the index, results are limited to what is present in the index, and will not include data that may have been recently updated in the database. The index updates very quickly, but expect a delay of up to 30 seconds between changes made to the database, and their appearance in the search results.

      Note

      SOSL can search Text fields (including Long Text fields), but not Picklist fields and Reference fields.

      • Fields to Search: Sets which Types of fields to query with SOSL. The options are:

        • Name Fields (default)
        • All Text Fields
        • Email Field
        • Phone Fields
        • SideBar Fields (Name, Phone, Email, External Ids)

        Searches on Salesforce data sources can use one of two query languages: SOQL or SOSL. SOQL can only search one object at a time in a single query, but searches all searchable fields in that object in real-time.

    • Fields: Skuid searches on searchable fields by default. Search can be narrowed to individual fields by clicking add Add new Search Field, and then using the field picker to select the field.

      Note

      • (Salesforce data sources only) SOQL can search Picklist fields and Reference fields, but not Long Text fields.
      • You can add multiple search fields.
      • Search Operator: Select from the following logical operators:

        • =
        • starts with
        • Contains
Skuid on Salesforce [[]]

By default, Salesforce Objects use SOQL. To ensure proper functionality, enable the Allow Search property on any Salesforce objects to be included in the search.

For more information on using these search options with Salesforce, check out Salesforce’s SOQL and SOSL Reference Guide.

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.
    • 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
    • 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
    • Skuid 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.
      • Skuid User Attribute: The value on the current user’s record to be used as a filter, usually an Id property. Options include:
        • Default Currency
        • First Name
        • Last Name
        • Email
        • Locale
        • Name
        • Organization Id
        • Organization Name
        • Profile Id
        • Profile Name
        • Session Id
        • User Id (default)
        • User Name
        • Use Rowl Id
        • User Type
        • Is Multi Currency Org
    • 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.

Styles tab [[]]

Global styles for this component are set in the Design System Studio. The following Style properties can be adjusted for an individual page.

  • Style Variant: Style variants are created and set in the Design System Studio. Some components have pre-defined variants for a specific aspect of a component’s style. Also, Skuid Builders can style and customize elements to create their own themes within the DSS. These themes will dynamically populate as selectable values in the Style Variant dropdown menu.

Advanced tab [[]]

The Advanced tab includes properties for date- or time-related fields.

  • Show Today Button: If checked, the month/year pickers include a Today button that allows users to quickly jump to the current date.
  • Show Month & Year Picker: If checked, Skuid displays month and year pickers 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.

Display Logic tab [[]]

Standard display logic options are available.

Template Properties

In addition to adding Fields to the Table from the Add Fields drop down on the component, its possible to add a Template. This creates a field on the table which can be configured from the Field Properties tab.

Template Field properties [[]]

  • Label: The label for the Template field.
  • Template: Specifies which fields the template field should include by either selecting them from the field picker, manually entering their merge variables, or using custom text.
  • Read-only: Records display in read mode and cannot be edited.

Using Template fields

Template fields—much like the Text component—provide a way to display arbitrary text alongside field data. Other fields may be included within a template field through the use of merge syntax. A basic template field for a full name may look like this:

{{FirstName}} {{LastName}}

It is also possible to update any fields included within a template field at runtime by double-clicking the Template field within the component.

For additional information, see the Template component topic.

Export Properties

Export properties allow end 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 end user clicks 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 end 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.