跳到正文
Linasan UI

DataGrid 数据网格

功能齐全的网格:全局搜索、表头筛选、多列排序、分组聚合、树形、行展开、固定行列、拖动列序、导出 CSV、虚拟滚动;前端或服务端模式。

销售订单共 120 条 · 筛选、排序、分组、列设置都在前端
排序1日期 降序
操作
SO-20261109南山食品西南已付款34¥20,4002026-10-26
SO-20261079南山食品华北已退款4¥9602026-10-24
SO-20261049南山食品西南已付款14¥13,4402026-10-22
SO-20261019南山食品华北已退款24¥14,4002026-10-20
SO-20261099南山食品华北已退款24¥2,8802026-10-16
SO-20261069南山食品西南已付款34¥28,5602026-10-14
SO-20261039南山食品华北已退款4¥1,9202026-10-12
SO-20261009南山食品西南已付款14¥1,6802026-10-10
SO-20261119南山食品华北已退款4¥4,3202026-10-08
SO-20261089南山食品西南已付款14¥10,0802026-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 万行,不分页,只渲染看得见的几十行
1user0上海登录0
2user7北京修改37
3user14杭州查询74
4user21深圳删除111
5user28成都导出148
6user35上海登录185
7user42北京修改222
8user49杭州查询259
9user56深圳删除296
10user63成都导出333
11user70上海登录370
12user77北京修改407
13user84杭州查询444
14user91深圳删除481
15user98成都导出518
16user105上海登录555
17user112北京修改592
18user119杭州查询629
19user126深圳删除666
20user133成都导出703
21user140上海登录740
22user147北京修改777
23user154杭州查询814

属性

useDataGrid

属性

类型

DataGrid

属性

类型

本页目录