flutter DataTable数据表格
数据表显示原始数据集。它们通常出现在桌面企业产品中。DataTable Widget实现这个组件
文档:https://api.flutter.dev/flutter/material/DataTable-class.html
import 'package:flutter/material.dart';
import './model/post.dart'; class DataTableDemo extends StatefulWidget {
@override
_DataTableDemoState createState() => _DataTableDemoState();
} class _DataTableDemoState extends State<DataTableDemo> {
int _sortColumnIndex;
bool _sortAscending = true; @override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('DataTableDemo'),
elevation: 0.0,
),
body: Container(
padding: EdgeInsets.all(16.0),
child: ListView(
children: <Widget>[
DataTable(
sortColumnIndex: _sortColumnIndex,
sortAscending: _sortAscending,
// onSelectAll: (bool value) {},
columns: [
DataColumn(
label: Text('Title'),
onSort: (int index, bool ascending) {
setState(() {
_sortColumnIndex = index;
_sortAscending = ascending; posts.sort((a, b) {
if (!ascending) {
final c = a;
a = b;
b = c;
} return a.title.length.compareTo(b.title.length);
});
});
},
),
DataColumn(
label: Text('Author'),
),
DataColumn(
label: Text('Image'),
), ],
rows: posts.map((post) {
return DataRow(
selected: post.selected,
onSelectChanged: (bool value) {
setState(() {
if (post.selected != value) {
post.selected = value;
}
});
},
cells: [
DataCell(Text(post.title)),
DataCell(Text(post.author)),
DataCell(Image.network(post.imageUrl)), ]
);
}).toList(),
),
],
),
)
);
}
}
效果:
分页demo
import 'package:flutter/material.dart';
import './model/post.dart'; class PostDataSource extends DataTableSource {
final List<Post> _posts = posts;
int _selectedCount = 0; @override
int get rowCount => _posts.length; @override
bool get isRowCountApproximate => false; @override
int get selectedRowCount => _selectedCount; @override
DataRow getRow(int index) {
final Post post = _posts[index]; return DataRow.byIndex(
index: index,
cells: <DataCell>[
DataCell(Text(post.title)),
DataCell(Text(post.author)),
DataCell(Image.network(post.imageUrl)),
],
);
} void _sort(getField(post), bool ascending) {
_posts.sort((a, b) {
if (!ascending) {
final c = a;
a = b;
b = c;
} final aValue = getField(a);
final bValue = getField(b); return Comparable.compare(aValue, bValue);
}); notifyListeners();
}
} class PaginatedDataTableDemo extends StatefulWidget {
@override
_PaginatedDataTableDemoState createState() => _PaginatedDataTableDemoState();
} class _PaginatedDataTableDemoState extends State<PaginatedDataTableDemo> {
int _sortColumnIndex;
bool _sortAscending = true; final PostDataSource _postsDataSource = PostDataSource(); @override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('PaginatedDataTableDemo'),
elevation: 0.0,
),
body: Container(
padding: EdgeInsets.all(16.0),
child: ListView(
children: <Widget>[
PaginatedDataTable(
header: Text('Posts'),
rowsPerPage: 5,
source: _postsDataSource,
sortColumnIndex: _sortColumnIndex,
sortAscending: _sortAscending,
// onSelectAll: (bool value) {},
columns: [
DataColumn(
label: Text('Title'),
onSort: (int columnIndex, bool ascending) {
_postsDataSource._sort((post) => post.title.length, ascending); setState(() {
_sortColumnIndex = columnIndex;
_sortAscending = ascending;
});
},
),
DataColumn(
label: Text('Author'),
),
DataColumn(
label: Text('Image'),
),
],
),
],
),
));
}
}
效果:
flutter DataTable数据表格的更多相关文章
- DataTable数据与Excel表格的相互转换
using Excel = Microsoft.Office.Interop.Excel; private static Excel.Application m_xlApp = null; /// & ...
- 自己实现的数据表格控件(dataTable),支持自定义样式和标题数据、ajax等各种自定义设置以及分页自定义
一.前言 也没什么好说的嘛,用了蛮多github上开源的能够实现dataTable功能的表格插件,不过都默认绑定样式啊,数据格式也设定的比较死,所以忍不住自己实现了一个简单的可自定义样式和自定义数据返 ...
- ASP.NET MVC+Bootstrap个人博客之后台dataTable数据列表(五)
jQuery dataTables 插件是一个优秀的表格插件,是后台工程师的福音!它提供了针对数据表格的排序.浏览器分页.服务器分页.查询.格式化等功能.dataTables 官网也提供了大量的演示 ...
- DataTable数据转换为实体
我们在用三层架构编写软件时,常常会遇到例如以下问题,就是三层之间的參数传递问题:假设我们在D层查询出数据是DataTable类型的,那么我们在B层甚至U层使用这条数据时,就要用DataTable类型来 ...
- 全自动数据表格JQuery版
由于最近工作上有些变动,已经快一个月没有写博客了.上一篇博客[React]全自动数据表格组件——BodeGrid介绍了全自动数据表格的设计思路以及分享了一个react.js的实现.但是现实情况中为了节 ...
- layui数据表格使用(一:基础篇,数据展示、分页组件、表格内嵌表单和图片)
表格展示神器之一:layui表格 前言:在写后台管理系统中使用最多的就是表格数据展示了,使用表格组件能提高大量的开发效率,目前主流的数据表格组件有bootstrap table.layui table ...
- .NET开源工作流RoadFlow-表单设计-数据表格
数据表格即在表单中显示一个table,该table数据可以来自任意自定义的来源: 数据类型:指定表格的数据源类型 1.datatable,即.net中的System.Data.DataTable 2. ...
- [转载]EasyUI中数据表格DataGrid添加排序功能
我们这里演示的是EasyUI数据表格DataGrid从服务器端排序功能,因为觉的本地数据排序没有多大的作用,一般我们DataGrid不会读取全部数据,只会读取当前页的数据,所以本地数据排序也只是对当前 ...
- Django中使用JS通过DataTable实现表格前端分页,每页显示页数,搜索等功能
Django架构中自带了后端分页的技术,通过Paginator进行分页,前端点击按钮提交后台进行页面切换. 优缺点:后端分页对于数据量大的场景有其优势,但页面切换比较慢. 后端分页python3代码如 ...
随机推荐
- Web前端面试图
文章:记一次腾讯微信面试 先是看简历上写的项目经验,问一上些项目上的问题,比如如何编写 js-sdk, 如何去修改 weui 库,遇到最大的难题是什么及如何去解决的. 数组去重的方法有哪些? 如何判断 ...
- 如何利用AI识别未知——加入未知类(不太靠谱),检测待识别数据和已知样本数据的匹配程度(例如使用CNN降维,再用knn类似距离来实现),将问题转化为特征搜索问题而非决策问题,使用HTM算法(记忆+模式匹配预测就是智能),GAN异常检测,RBF
https://www.researchgate.net/post/How_to_determine_unknown_class_using_neural_network 里面有讨论,说是用rbf神经 ...
- Spark-2.3.2 Java SparkSQL的自定义HBase数据源
由于SparkSQL不支持HBase的数据源(HBase-1.1.2),网上有很多是采用Hortonworks的SHC,而SparkSQL操作HBase自定义数据源大多数都是基于Scala实现,我就自 ...
- 如何防护DDOS攻击策略
DDoS是目前最凶猛.最难防御的网络攻击之一.现实情况是,这个世界级难题还没有完美的.彻底的解决办法,但采取适当的措施以降低攻击带来的影响.减少损失是十分必要的.将DDoS防御作为整体安全策略的重要部 ...
- Enterprise Architect 14破解版 安装包 安装教程
安装包以及破解补丁下载: 链接:https://pan.baidu.com/s/1es0wN_6-d9pk4xnSN1SiFA 提取码:bor0 安装包链接失效可在下方留言 安装以及破解教程 参考链接 ...
- 接口-httpClient
最近在工作的过程中有遇到httpClient接口,今天特意些一个小示例对这个知识点进行温习. 下面是代码小片段: package com.sinosoft.lis.mgubq.zhaoyongqian ...
- 有关 Java (jackson包问题 ,MappingJacksonHttpMessageConverter 和 MappingJackson2HttpMessageConverter问题)
今天这一系列问题吃掉我四个小时,所以现在吸收掉. 一. 整理所有错误信息: 1.错误信息:java.lang.NoClassDefFoundError: Could not initialize cl ...
- 【概率论】5-10:二维正态分布(The Bivariate Normal Distributions)
title: [概率论]5-10:二维正态分布(The Bivariate Normal Distributions) categories: - Mathematic - Probability k ...
- SSM + ehcache 异常
异常如下: 十二月 26, 2017 1:24:44 下午 org.apache.jasper.servlet.TldScanner scanJars 信息: At least one JAR was ...
- 服务器上build.xml文件乱码解决(亲测有效)
前提条件:必须root账户登录系统,否则无权限 1. 修改/etc/sysconfig/i18n: 拷贝如下内容到文件中 #LANG="zh_CN.UTF-8" LANG=&quo ...