DsTable
Datatabell.
Bruk
Når bør du bruke DsTable?
- Til å presentere strukturerte data i rader og kolonner.
- Når brukeren trenger å sammenligne verdier på tvers av elementer.
- Til å vise lister med flere attributter per element (f.eks. navn, status, dato).
Når bør du unngå DsTable?
- Til layoutformål. Bruk grid eller flex-layout i stedet.
- Når dataene er enkle nok til å vises som en liste.
Eksempler
Grunnleggende bruk
dart
DsTable(
columns: [Text('Navn'), Text('Status')],
rows: [
[Text('Prosjekt A'), DsTag(child: Text('Aktiv'), color: DsColor.success)],
[Text('Prosjekt B'), DsTag(child: Text('Fullført'), color: DsColor.info)],
],
)Med sebrastriper og musepeker-utheving
dart
DsTable(
zebra: true,
hover: true,
columns: [Text('ID'), Text('Beskrivelse'), Text('Dato')],
rows: [
[Text('001'), Text('Første oppgave'), Text('2026-01-15')],
[Text('002'), Text('Andre oppgave'), Text('2026-02-20')],
[Text('003'), Text('Tredje oppgave'), Text('2026-03-10')],
],
)Med sorterbare kolonner og trykkbare rader
dart
DsTable(
columns: [Text('Navn'), Text('Alder')],
rows: [
[Text('Alice'), Text('30')],
[Text('Bob'), Text('25')],
],
sortColumn: 0,
sortDirection: DsSortDirection.ascending,
onSort: (kolonneIndeks) => sorter(kolonneIndeks),
onRowTap: (radIndeks) => velgRad(radIndeks),
)Med festet overskriftsrad og bunntekst
Festet overskriftsrad krever en avgrenset høyde, for eksempel inne i en SizedBox eller Expanded.
dart
SizedBox(
height: 240,
child: DsTable(
stickyHeader: true,
caption: Text('Utgifter per måned'),
columns: [Text('Måned'), Text('Beløp')],
rows: [
[Text('Januar'), Text('1 200')],
[Text('Februar'), Text('980')],
],
footerRows: [
[Text('Sum'), Text('2 180')],
],
),
)Retningslinjer
- Bruk tydelige kolonneoverskrifter som beskriver innholdet i kolonnen.
- Juster tekst til venstre og tall til høyre for bedre lesbarhet.
- Hold tabellen enkel. Unngå for mange kolonner som gjør det vanskelig å lese.
Tekst
- Kolonneoverskrifter bør være korte og beskrivende.
- Bruk konsekvent formatering av data i hver kolonne.
Har du innspill til denne komponenten? Send innspill på GitHub