DataGrid 数据网格
功能齐全的网格:全局搜索、表头筛选、多列排序、分组聚合、树形、行展开、固定行列、拖动列序、导出 CSV、虚拟滚动;前端或服务端模式。
销售订单共 120 条 · 筛选、排序、分组、列设置都在前端
排序1日期 降序
| 操作 | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| SO-20261109 | 南山食品 | 西南 | 已付款 | 34 | ¥20,400 | 2026-10-26 | |||
| SO-20261079 | 南山食品 | 华北 | 已退款 | 4 | ¥960 | 2026-10-24 | |||
| SO-20261049 | 南山食品 | 西南 | 已付款 | 14 | ¥13,440 | 2026-10-22 | |||
| SO-20261019 | 南山食品 | 华北 | 已退款 | 24 | ¥14,400 | 2026-10-20 | |||
| SO-20261099 | 南山食品 | 华北 | 已退款 | 24 | ¥2,880 | 2026-10-16 | |||
| SO-20261069 | 南山食品 | 西南 | 已付款 | 34 | ¥28,560 | 2026-10-14 | |||
| SO-20261039 | 南山食品 | 华北 | 已退款 | 4 | ¥1,920 | 2026-10-12 | |||
| SO-20261009 | 南山食品 | 西南 | 已付款 | 14 | ¥1,680 | 2026-10-10 | |||
| SO-20261119 | 南山食品 | 华北 | 已退款 | 4 | ¥4,320 | 2026-10-08 | |||
| SO-20261089 | 南山食品 | 西南 | 已付款 | 14 | ¥10,080 | 2026-10-06 |
第 1–10 条,共 120 条
每页跳至页
useDataGrid 管理全部状态(排序、筛选、分组、列宽、列序、固定、可见、分页、选择),persistKey 把用户的列设置存到 localStorage。
- 前端模式:传
data,筛选排序分页都在浏览器里做。 - 服务端模式:配合
useGridQuery把状态转成查询参数(GridQuery),传rowCount和manual,数据交给你的请求库。
DataGridCard 是带工具栏的成品;也可以用 DataGrid 加 DataGridSearch、DataGridGroupBy、DataGridExport、DataGridChips、DataGridPagination 自己拼。
安装
pnpm dlx shadcn@latest add https://docs.linasan.cn/r/data-grid.json第一次装本站的组件前先在项目里执行一次 shadcn init,详见 安装。
用法
import { DataGridCard } from '@/components/data-grid/grid-toolbar';
import { useDataGrid } from '@/components/data-grid/use-data-grid';
const grid = useDataGrid({ data, columns, pageSize: 20 });
<DataGridCard grid={grid} title="订单" search="搜索订单号" exportable="订单.csv" />示例
树形数据
getSubRows 给出子行,TreeCell 画缩进和展开按钮;勾选父级联动子级。
| 总公司 | 林三 | 260 | |
| 研发中心 | 王五 | 128 | |
| 前端组 | 赵六 | 32 | |
| 后端组 | 孙七 | 48 | |
| 测试组 | 周八 | 18 | |
| 产品部 | 吴九 | 24 | |
| 市场部 | 郑十 | 36 |
虚拟滚动
virtual + maxHeight:5 万行也只渲染可见的几十行。
访问日志5 万行,不分页,只渲染看得见的几十行
| 1 | user0 | 上海 | 登录 | 0 |
| 2 | user7 | 北京 | 修改 | 37 |
| 3 | user14 | 杭州 | 查询 | 74 |
| 4 | user21 | 深圳 | 删除 | 111 |
| 5 | user28 | 成都 | 导出 | 148 |
| 6 | user35 | 上海 | 登录 | 185 |
| 7 | user42 | 北京 | 修改 | 222 |
| 8 | user49 | 杭州 | 查询 | 259 |
| 9 | user56 | 深圳 | 删除 | 296 |
| 10 | user63 | 成都 | 导出 | 333 |
| 11 | user70 | 上海 | 登录 | 370 |
| 12 | user77 | 北京 | 修改 | 407 |
| 13 | user84 | 杭州 | 查询 | 444 |
| 14 | user91 | 深圳 | 删除 | 481 |
| 15 | user98 | 成都 | 导出 | 518 |
| 16 | user105 | 上海 | 登录 | 555 |
| 17 | user112 | 北京 | 修改 | 592 |
| 18 | user119 | 杭州 | 查询 | 629 |
| 19 | user126 | 深圳 | 删除 | 666 |
| 20 | user133 | 成都 | 导出 | 703 |
| 21 | user140 | 上海 | 登录 | 740 |
| 22 | user147 | 北京 | 修改 | 777 |
| 23 | user154 | 杭州 | 查询 | 814 |
属性
useDataGrid
属性
类型
DataGrid
属性
类型