> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hyperwisor.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Table

> A data table with optional inline editing, bound to device data or a database table.

<Info>
  **Category:** Display · **Reads data:** yes · **Sends commands:** no
</Info>

## Mental model

A **Table is a spreadsheet.** Rows and columns of data — bind it to a database table
or a data feed and it lists the records, optionally editable in place.

## When to use it

* Show stored records (logs, readings, entries)
* Tabular data with sorting/editing

## Settings

### General / Data

* **Widget Title / ID** · bind to a database table or data source

### Style

* **Header background / text** · **row background / text** · **alternate row background**
* **Cell padding** · **font size / weight**
* **Enable inline editing** · **refresh interval**

### Triggers

`dataload`, `datafail`, `refresh`, `select`, plus common events.

## Related

Pairs with the [Database](/studio/database) — write rows with a
[Database Form](/dashboard/widgets/database-form), read them here.

## Script API example

The same interactions from a [dashboard script](/script/overview):

```js theme={null}
widget.on('logsTable', 'select', (row) => {
  widget.setText('detailLabel', JSON.stringify(row));
});
```

<Card title="Dynamic Repeater" icon="grip-lines" href="/dashboard/widgets/dynamic-repeater">
  A custom template per record instead of a grid.
</Card>
