Heisenware Docs
Go to websiteGet a demo
  • 👋Welcome
  • Getting started
  • Release Notes
    • v84 - Get in the flow
    • v83 - Beauty treatment
    • v82 — Fully distributed
    • v81 — Removing old cruft
    • v80 — Chicks on fire
    • v79 — Nothing is forever
    • v78 — Keep moving
    • v77 — More intelligence
    • v76 — Well cooked
  • Build & Deploy Apps
    • Overview
    • Flow Builder
      • Nodes (Functions)
        • Inputs
        • Trigger
        • Output
      • Flows
      • Function Extensions
        • Modifier
        • Filter
        • Error handler
        • Memorizer
      • Objects & Instances
      • Utilities
        • Basic Functions
        • PDF functions
        • Circular buffer
        • Timer
        • Counter
    • Integrations
      • Protocol Connectors
        • GraphQL
        • HTTP/REST
        • MQTT
        • OPC UA
          • Heidenhain PLCs with OPC UA
        • RS-232/485
        • Siemens S7
      • Data Connectors
        • File
        • Relational Database
        • Time Series Database (WIP)
      • API Connectors
        • OGC SensorThings API
        • Operating System
        • Zebra RFID IoT Connector
      • Agent / (Edge Connector)
      • Calling Custom Code
    • UI Builder
      • Input Widgets
        • Form
        • File Upload
        • Photo
        • Signature
        • Barcode / QR-Code (WIP)
        • Document Scan (WIP)
      • Display Widgets
        • Chart
        • Chat
        • Circular Gauge
        • Data Grid
        • Linear Gauge
        • Map
        • Media View
        • Progress Bar
        • Sparkline
        • Status Lamp
        • Toast
        • Value Box
        • Kanban Board
        • Data Tiles
        • Pie Chart
        • Sankey
      • Buttons
      • Text Box
      • Images
      • Icons
    • Communication Interfaces
      • Email Notifications
      • OPC UA Server
    • Data & File Storage
      • Internal InfluxDB
      • Internal PostgreSQL
      • File Server
    • App Appearance
      • Pages
      • In-App Navigation
      • Screens & Devices
      • Theming
    • Simulation & Testing
      • Simulating Events
      • Simulating Data
    • PDF Templates
    • RAG-based Chatbot
    • Deployment
  • Manage Apps
    • Overview
    • Manage Apps
      • General Settings
      • Users and Access
      • Distribution & Versioning
    • Manage Integrations
    • Manage Account
      • Account Structure
      • Members
      • Workspaces
  • TUTORIALS
    • Build Your First Heisenware App
  • Connect Heidenhain CNC with OPC UA Support
  • Related links
    • Website
    • Privacy policy
    • Imprint
Powered by GitBook
On this page
  • Elements
  • Key Features
  • Create a data grid and bind data to it
  • Customizing data types and widgets
  • Behavior and View Settings
  • Logic / UI Communication
  1. Build & Deploy Apps
  2. UI Builder
  3. Display Widgets

Data Grid

Last updated 2 months ago

The Data grid is a responsive grid control with a vast assortment of capabilities, including data editing and validation, searching and filtering, layout customization, and more.

Elements

Key Features

  • Various Edit Possibilities The data grid provides full CRUD (create, read, update, delete) interaction. Updating data can be done in multiple modes: directly within the cell of the row, as form or as popup.

  • Filtering and Sorting Set up a filter row and a header filter to filter data by column values, or use other ways to filter. You can sort data grid by single or multiple columns.

  • Grouping You can use a column header's context menu or a group panel to group data in data grid.

  • Master-Detail View You can place detailed information per row that unfolds withing an accordion widget.

Create a data grid and bind data to it

The data grid understands an array of objects as data structure, where each item in the array reflects a single column and the keys of the object reflect the column headers.

It is important that each object (row) has the same structure!

[ 
  { firstName: walter, lastName: white },
  { firstName: jesse, lastName: pinkman }
]

When binding data, the grid tries to automatically detect the corresponding data types and selects appropriate widgets for displaying (and optionally editing).

To get started its advisable to play with the simulated data (e.g. "randomPersonData") to understand the capabilities and inner workings.

Customizing data types and widgets

In order to customize the shown data use the "Data Settings" button:

Let's go through the available settings:

  • Column Name The displayed name of the column (view only, never used in the business logic)

  • Visibility Configures how and when a column is visible. Possible options are: - Visible: The column is always visible - Detail: The column is only visible in the detailed view - Hidden: By default the column is hidden, but can be added by the user at runtime - Removed: The column is fully removed and never shown on the grid

  • Editing This option is only relevant when the data grid allows editing the listed data. Possible options are: - Optional: The corresponding data field can be added but is not required to - Required: The corresponding data field must be provided - Disabled: The corresponding data field is shown while editing, but disabled - Hidden: The corresponding data field is hidden from any editing dialogs

  • Editor Widget This is the widget type that should be used while editing. The choice here as well affects the displayed widgets. Depending on the choice, more detailed options relevant for that specific widget type may appear.

Tip: You can use the up/down arrows the set the default ordering of the columns

Behavior and View Settings

By default most of the extra features like editing, sorting, grouping, filtering etc. are disabled. Use the grid settings configuration to enable those.

We won't go through every setting in detail here, but rather pick the most relevant:

  • Data Editing Mode When updating data you can choose between three modes: - Row: A user edits one row at a time. The data grid saves changes when the row leaves the editing state. - Form: On entering the editing state, a row becomes a form with editable fields. The data grid saves changes after a user clicks the "Save" button. - Popup: Differs from the form mode in that the form with editable fields is placed in a popup window.

  • Show All Fields on Edit This checkbox customizes how the row of the updated data is described to the corresponding backend event (called "onUpdate", see below). By default only an "id" property is added to the changed data reflecting the id of the row (typically a primary key of a database) or, when not available in the data "id" becomes the index of the updated row. However, when checked, all available fields of that updated column are displayed as an object underneath the "id" property.

Logic / UI Communication

Inserting, deleting and updating rows

If the relevant options are selected in the settings above, the app user can be enabled to add, update or delete rows in the Data Grid. However, these changes are only at the UI level and need to be committed to the backend (for example, to update a database) to be made permanent.

Dragging a function input onto the widget enables the following properties:

  • onInsert: gets the information entered by the app user when adding a new row.

  • onDelete: gets the id (or the index if none is present) of the row deleted by the app user.

  • onUpdate: gets the information entered by the app user when updating a row.

  • onSelectionChange: If the Selection Mode is set as "Single", this property gets the id of the currently selected row. This can be useful for setting up navigation.

Select the option from the display widgets drop down and click on a free place in your app preview. To populate it with data you need to drag an output or a modifier item onto the grid.

Screenshot of a fully featured data grid including sorting, filtering, grouping, editing, exporting and master-detail view.
Default view as generated by dragging random person data.
Screenshot of the data settings menu
Excerpt of the available grid setting options