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 Display > Other 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, configuring, and conditionally rendering 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.

Use a character counter in string and textarea 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. 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, end 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.

For more information on field metadata overrides, see Field Metadata Overrides.

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).

      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.

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.

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.

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.

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.