davi 5.0.0
davi: ^5.0.0 copied to clipboard
A full customized dataview that builds the cells on demand. Focused on Web/Desktop Applications. Bidirectional scroll bars. (DataTable, Data Table, Data View)

- Ready for a large number of data. High performance. Building cells on demand.
- Focused on Web/Desktop Applications.
- Model mode, where the table owns the rows and sorts them, or builder mode, where the rows come from your own state (Bloc,
ChangeNotifier, etc.), for example for server-side sorting. - Bidirectional scroll bars.
- Resizable.
- Column auto size to fit the content.
- Dynamic row height.
- Column summary (Footer).
- Highly customizable.
- Custom cells.
- Pinned columns.
- Multiple sort.
- Infinite scroll.
- Trailing widget.
Model mode #
A DaviModel holds the rows and takes care of them, including sorting.
DaviModel<Person> model = DaviModel(rows: rows, columns: [
DaviColumn(name: 'Name', cellValue: (params) => params.data.name),
DaviColumn(name: 'Age', cellValue: (params) => params.data.age)
]);
Davi<Person>(model);
Builder mode #
A DaviController keeps only the state of the columns. The rows come from you: when they change, rebuild with a new list. Tapping a header calls onSort, and you provide the rows in the requested order.
DaviController<Person> controller = DaviController(columns: [
DaviColumn(name: 'Name', cellValue: (params) => params.data.name),
DaviColumn(name: 'Age', cellValue: (params) => params.data.age)
]);
Davi<Person>.builder(
controller: controller,
rows: rows,
onSort: (sortedColumns) {
// Sort the rows (or fetch them sorted) and rebuild.
});
Explore and learn more by clicking here.



