Flutter PaginatedDataTable rowsPerPage

Flutter PaginatedDataTable rowsPerPage,第1张

Flutter PaginatedDataTable rowsPerPage
  import 'package:flutter/material.dart';    class DemoTable extends StatelessWidget {      @override      Widget build(BuildContext context) {        return _DemoTableBody();      }    }    class _DemoTableBody extends StatefulWidget {      @override      __DemoTableBodyState createState() => __DemoTableBodyState();    }    class __DemoTableBodyState extends State<_DemoTableBody> {      int _rowsPerPage = PaginatedDataTable.defaultRowsPerPage;      // A Variable to hold the length of table based on the condition of comparing the actual data length with the PaginatedDataTable.defaultRowsPerPage      int _rowsPerPage1 = PaginatedDataTable.defaultRowsPerPage;      @override      Widget build(BuildContext context) {      //Obtain the data to be displayed from the Derived DataTableSource        var dts = DTS();        // dts.rowcount provides the actual data length, ForInstance, If we have 7 data stored in the DataTableSource Object, then we will get 12 as dts.rowCount       var tableItemsCount = dts.rowCount;        // PaginatedDataTable.defaultRowsPerPage provides value as 10        var defaultRowsPerPage = PaginatedDataTable.defaultRowsPerPage;        // We are checking whether tablesItemCount is less than the defaultRowsPerPage which means we are actually checking the length of the data in DataTableSource with default PaginatedDataTable.defaultRowsPerPage i.e, 10        var isRowCountLessDefaultRowsPerPage = tableItemsCount < defaultRowsPerPage;        // Assigning rowsPerPage as 10 or acutal length of our data in stored in the DataTableSource Object        _rowsPerPage = isRowCountLessDefaultRowsPerPage ? tableItemsCount : defaultRowsPerPage;        return Scaffold(          appBar: AppBar( title: Text("Demo Paginated Table"),          ),          body: SingleChildScrollView( child: PaginatedDataTable(   header: Text('data with 7 rows per page'),   // comparing the actual data length with the PaginatedDataTable.defaultRowsPerPage and then assigning it to _rowPerPage1 variable which then set using the setsState()   onRowsPerPageChanged: isRowCountLessDefaultRowsPerPage // The source of problem!       ? null       : (rowCount) {setState(() {  _rowsPerPage1 = rowCount;});         },   columns: <DataColumn>[     DataColumn(label: Text('row')),     DataColumn(label: Text('name')),   ],   source: dts,   //Set Value for rowsPerPage based on comparing the actual data length with the PaginatedDataTable.defaultRowsPerPage    rowsPerPage:       isRowCountLessDefaultRowsPerPage ? _rowsPerPage : _rowsPerPage1, ),          ),        );      }    }    class DTS extends DataTableSource {      @override      DataRow getRow(int index) {        return DataRow.byIndex(          index: index,          cells: [ DataCell(Text('row #$index')), DataCell(Text('name #$index')),          ],        );      }      @override      int get rowCount => 9; // Manipulate this to which ever value you wish      @override      bool get isRowCountApproximate => false;      @override      int get selectedRowCount => 0;    }


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4957715.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-13
下一篇2022-11-14

发表评论

登录后才能评论

评论列表(0条)

    保存