AdvancedPaginatedDataTable class
Based on the 'original' data table from the Flutter Dev Team Extended to support async data loading and other changes to be more flexible A material design data table that shows data using multiple pages.
A paginated data table shows rowsPerPage rows of data per page and provides controls for showing other pages.
Data is read lazily from from a DataTableSource. The widget is presented as a Card.
See also:
- DataTable, which is not paginated.
- material.io/go/design-data-tables#data-tables-tables-within-cards
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- AdvancedPaginatedDataTable
Constructors
-
AdvancedPaginatedDataTable({Key? key, Widget? header, List<
Widget> ? actions, required List<DataColumn> columns, int? sortColumnIndex, bool sortAscending = true, ValueSetter<bool?> ? onSelectAll, double dataRowHeight = kMinInteractiveDimension, double headingRowHeight = 56.0, double horizontalMargin = 24.0, double columnSpacing = 56.0, bool showCheckboxColumn = true, bool showFirstLastButtons = false, int? initialFirstRowIndex = 0, ValueChanged<int> ? onPageChanged, int rowsPerPage = defaultRowsPerPage, List<int> availableRowsPerPage = const <int>[defaultRowsPerPage, defaultRowsPerPage * 2, defaultRowsPerPage * 5, defaultRowsPerPage * 10], ValueChanged<int?> ? onRowsPerPageChanged, DragStartBehavior dragStartBehavior = DragStartBehavior.start, required AdvancedDataTableSource source, double? checkboxHorizontalMargin, bool addEmptyRows = true, GetWidgetCallBack? loadingWidget, GetWidgetCallBack? errorWidget, Alignment defaultFootAlignment = Alignment.centerRight, bool? showHorizontalScrollbarAlways}) - Creates a widget describing a paginated DataTable on a Card.
Properties
-
actions
→ List<
Widget> ? -
Icon buttons to show at the top end side of the table. The header must
not be null to show the actions.
final
- addEmptyRows → bool
-
Add empty/blank lines to the table if not enough records are present
If the source doesnt have enough data add empty/blank lines to fill a page
Default true
final
-
availableRowsPerPage
→ List<
int> -
The options to offer for the rowsPerPage.
final
- checkboxHorizontalMargin → double?
-
Horizontal margin around the checkbox, if it is displayed.
final
-
columns
→ List<
DataColumn> -
The configuration and labels for the columns in the table.
final
- columnSpacing → double
-
The horizontal margin between the contents of each data column.
final
-
Create your own custom Footer control
final
- dataRowHeight → double
-
The height of each row (excluding the row that contains column headings).
final
- defaultFootAlignment → Alignment
-
The alignment for the default footer of the datatable
Default CenterRight
final
- dragStartBehavior → DragStartBehavior
-
Determines the way that drag start behavior is handled.
final
- errorWidget → GetWidgetCallBack?
-
Called once the page loading encountered an error in the future
If not provided a default message will be shown
final
-
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- header → Widget?
-
The table card's optional header.
final
- headingRowHeight → double
-
The height of the heading row.
final
- horizontalMargin → double
-
The horizontal margin between the edges of the table and the content
in the first and last cells of each row.
final
- initialFirstRowIndex → int?
-
The index of the first row to display when the widget is first created.
final
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- loadingWidget → GetWidgetCallBack?
-
Called while the page is loading
If not set a default loading will be shown
final
-
onPageChanged
→ ValueChanged<
int> ? -
Invoked when the user switches to another page.
final
-
onRowsPerPageChanged
→ ValueChanged<
int?> ? -
Invoked when the user selects a different number of rows per page.
final
-
onSelectAll
→ ValueSetter<
bool?> ? -
Invoked when the user selects or unselects every row, using the
checkbox in the heading row.
final
- rowsPerPage → int
-
The number of rows to show on each page.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- showCheckboxColumn → bool
-
Whether the widget should display checkboxes for selectable rows.
final
- showFirstLastButtons → bool
-
Flag to display the pagination buttons to go to the first and last pages.
final
- showHorizontalScrollbarAlways → bool?
-
final
- sortAscending → bool
-
Whether the column mentioned in sortColumnIndex, if any, is sorted
in ascending order.
final
- sortColumnIndex → int?
-
The current primary sort key's column.
final
- source → AdvancedDataTableSource
-
The data source which provides data to show in each row. Must be non-null.
final
Methods
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → PaginatedDataTableState -
Creates the mutable state for this widget at a given location in the tree.
override
-
debugDescribeChildren(
) → List< DiagnosticsNode> -
Returns a list of DiagnosticsNode objects describing this node's
children.
inherited
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toDiagnosticsNode(
{String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
inherited
-
toString(
{DiagnosticLevel minLevel = DiagnosticLevel.info}) → String -
A string representation of this object.
inherited
-
toStringDeep(
{String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String -
Returns a string representation of this node and its descendants.
inherited
-
toStringShallow(
{String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String -
Returns a one-line detailed description of the object.
inherited
-
toStringShort(
) → String -
A short, textual description of this widget.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Constants
- defaultRowsPerPage → const int
- The default value for rowsPerPage.