t×tecexpressby TeKOcloud
DEv0.7.1
Data & views / VUE

TxDataGrid.

Interactive preview

Data table with single-column sorting, AND text filters, paging, selection and custom cells.

PropTypeDefaultMeaning
dataSourceTxSource<DataRow> | undefined[]List, configuration or DataSource instance; takes precedence over items.
keyExprstring | undefinedidField containing the stable record key.
columnsColumn[] | undefinedundefinedColumn or card field configurations.
filterRowboolean | { visible: boolean; } | undefinedtrueShows the text filter row.
pageSizenumber | undefined10Records per page.
pageIndexnumber | undefinedundefinedZero-based page index.
selection"none" | "single" | "multiple" | { mode: "none" | "single" | "multiple"; } | undefinednoneSelection mode.
selectedRowKeysRowKey[] | undefinedundefinedControlled set of selected row keys.
loadingboolean | undefinedfalseShows the loading state.
disabledboolean | undefinedfalseDisables interaction.
noDataTextstring | undefinedKeine Daten vorhanden.Text for an empty collection.
labelstring | undefinedDatentabelleLabel or accessible name.

Events

EventPayload / behavior
rowClickRowClickEvent: data, key, rowIndex, event.
selectionChangedNew selection: { selectedRowKeys, selectedRowsData }.
update:selectedRowKeysNew selectedRowKeys value; accept using v-model:selectedRowKeys (modelValue: v-model).
update:pageIndexNew pageIndex value; accept using v-model:pageIndex (modelValue: v-model).
sortChangedCurrent SortDescriptor or null.
filterChangedCurrent text filters as Record<string, string>.

Slots

SlotArguments
defaultTxColumn[]
[cellTemplate]{ data, value, column, rowIndex }
vue
<script setup lang="ts">
import { TxDataGrid, TxColumn } from '@tekocloud.de/tecexpress'
import '@tekocloud.de/tecexpress/themes/index.css'
const rows = [{ id: 1, name: 'Alex' }]
</script>

<template>
  <TxDataGrid :data-source="rows" key-expr="id">
    <TxColumn data-field="name" caption="Name" />
  </TxDataGrid>
</template>