@3mo/data-grid

中文文档
0.41.0发布于 2026/10/30MITTypeScriptES Module构建来源已验证近 30 天下载 3749

用于数据网格的网页组件,有打入的列,排序,选择,页码,行细节和行内编辑等功能.

中文使用文档
文档目录32 节
  1. 安装
  2. 使用量
  3. 实例
  4. 无障碍
  5. API 密码
  6. mo-data-grid
  7. mo-data-grid-cell
  8. mo-data-grid-column-header
  9. mo-data-grid-footer
  10. mo-data-grid-header
  11. mo-data-grid-header-separator
  12. mo-data-grid-primary-context-menu-item
  13. mo-data-grid-column-boolean
  14. mo-data-grid-column
  15. mo-data-grid-column-deletion
  16. mo-data-grid-column-icon-button
  17. mo-data-grid-column-image
  18. mo-data-grid-column-text
  19. mo-data-grid-column-date
  20. mo-data-grid-column-date-range
  21. mo-data-grid-column-date-time
  22. mo-data-grid-column-date-time-range
  23. mo-data-grid-column-image-preview
  24. mo-data-grid-image-preview
  25. mo-data-grid-image-preview-button
  26. mo-data-grid-column-currency
  27. mo-data-grid-column-number
  28. mo-data-grid-column-percent
  29. mo-data-grid-footer-sum
  30. mo-data-grid-default-row
  31. 链接
  32. 许可证

数据网格

用于数据网格的网页组件,有打入的列,排序,选择,页码,行细节和行内编辑等功能.

npm Documentation

一个表格以行的形式显示一系列对象,其中包含选择、排序、页码、细节、编辑和CSV导出.

网格高得跟行一样高, 并卷入其中 height页:1 max-height 或一定大小的容器份额.

安装

npm install @3mo/data-grid
import '@3mo/data-grid'

使用量

<mo-data-grid .data=${twentyPeople} editability='never'>
    <mo-data-grid-column-image heading='Avatar' dataSelector='avatar' tooltipSelector='name'></mo-data-grid-column-image>
    <mo-data-grid-column-text heading='Name' dataSelector='name'></mo-data-grid-column-text>
    <mo-data-grid-column-number heading='Age' dataSelector='age'></mo-data-grid-column-number>
    <mo-data-grid-column-text heading='Address' dataSelector='address'></mo-data-grid-column-text>
    <mo-data-grid-column-date heading='Birth Date' dataSelector='birthDate'></mo-data-grid-column-date>
</mo-data-grid>

实例

  • 约束列 —— 说 DataGridColumnBinder.for(Person).bind(keyPath) 从密钥路径取出列的数据选择器,其标题来自 @label 及其描述来自 @description。 。 。 .
  • 粘贴列 —— 说 sticky 将一栏指向 start页:1 end 或改为 both ; 选择和菜单列也粘贴.
  • 自定义单元格样式 —— 说 contentStyle 样式单元格按其值:以红色表示负平衡,以绿色表示正平衡.
  • 列菜单项目 ——您自己的一列元素在菜单标题下添加项目,单击有色地址一列的标题.
  • 和数 —— 说 sumHeading 在页脚中总计一个数字列,在所选行上,同时有 sum 插槽需要自己的总数.
  • 选择 —— 说 isDataSelectable 决定选择哪行, 这里只选择成人 .
  • 细节 —— 说 getRowDetailsTemplate 使一行打开 hasDataDetail 决定哪行有细节 这里只有成年人.
  • 子数据网格 ——细节可以持有任何模板,如行子的网格.
  • 子行 —— 说 subDataGridDataSelector 命名一行孩子的密钥路径,这些路径在同一列下作为子行打开,按级别排列.
  • 编辑 – 这里每个可编辑的单元格同时编辑,以及 nonEditable 需要一个使年龄超过30只读的前提.
  • 排序 —— 说 sorting 设置以名称开头的顺序,然后按年龄排列; 标题类型箭头按其列排列,并单击 Shift+ 将其添加到顺序中.
  • 重排顺序 —— 说 reorderability 在拖行后加一个抓住, 每一滴火 reorder,动作面板记录.
  • 过滤器 - 《公约》的要素 filter 以工具栏的过滤按钮打开槽;它们继续行走,同时合上并用其他方式将自己包入行中.
  • 初级行动 - 电话 primary-action 将一个元素放在工具栏的末尾,放在其图标按钮后.
  • 用分块按钮进行主动作 ——复合动作也适合插槽,例如分拆按钮有较多选项.
  • 背景菜单 —— 说 getRowContextMenuTemplate 给每行一个菜单,以右键打开,或按其qq键打开; primaryContextMenuItemOnDoubleClick 运行双击时的粗体项目.
  • 虚拟化 ——一页上千行:通过它们滚动,全部选择或导出.
  • 虚拟子行 ——25行开为每行40个子行,像一个产品页,每个变体都通过扩展 detailsOpen;滚动通过,并观看滚动条保持静止.
  • 限制高度 A级 height页:1 max-height 或一定大小的弹性或网格容器的一部分,给网格一个高度,它把它的行卷入其中.
  • 导出 —— 说 exportable 在页脚上添加一个按钮,将行作为CSV,子行包含.
  • 空状态 ——没有数据,网格显示为空状态,其中 error-no-content 位置替换 .
  • 在一张纸牌中 - 在一个 mo-card,网格横跨卡片标题下的全部宽度.
  • 自定义数据网格 —箭头键在单元格之间移动,空格选择,输入或双击编辑和 Ctrl+ C 副本; 单击时的标题类型, 拖动时移动并按其边缘调整大小 .

无障碍

A 类 grid,或一个 treegrid 带有子行,并 aria-multiselectable 数倍。 标题是 row 联 合 国 columnheaders, (中文(简体) ), 其中,列排序 首先说 aria-sort='ascending' 或者说 'descending' 和所有其他可分类的 'none'。行为 row编号与 aria-level, (中文(简体) ), aria-setsize 财务报告和审定财务报表 aria-posinset, (中文(简体) ), aria-selected 可选择行和 aria-expanded 单元格为 gridcell编号. 一个单元格是按制表符顺序排列的,并具有真正的焦点. 列头不是箭头导航的一部分;其按钮是 普通分页停止.

密钥对
箭头细胞朝那个方向走, 包裹在边缘.
Home End排行中的第一个或最后一个单元格.
Ctrl Home 编号 : End网格的第一个细胞,或者最后一个细胞.
PageUp PageDown上下行一页.
Enter编辑可编辑的单元格;否则单击该单元格,该单元格用 selectOnClick 并打开其细节 detailsOnClick。 。 。 .
Enter Escape编辑时:结束并返回单元格; Enter 执行,文本区域除外.
Ctrl 或者说 ⌘ C复制单元格的文本.

与 selectOnClick,移动到单元格中选择其行,以及 Shift 扩展选择。 与ARIA不同的地方 练习:箭头相接, Space 不选择行,在树格中 ArrowRight 财务报告和审定财务报表 ArrowLeft 在单元格之间移动 而不是打开和关闭行.

API 密码

mo-data-grid

属性

名称属性类型默认说明
rowsDataGridRow<TData, TDetailsElement>[]已转换的行和子行按记录顺序排列.
resolvedPagination{ readonly strategy: DataGridPaginationStrategy; readonly size: DataGridPaginationSize; } | undefined从属性、静态默认和倒置中解析有效的 pagination 配置 .
datadataTData[]"new Array<TData>()"在 DataGrid 中显示的数据 。 它是一系列对象,每个对象代表一行.
columnscolumnsDataGridColumn<TData, any>[]DataGrid的列由它们的定义和修改组成. 指定它给出代码中的定义,哪个列元素会覆盖.
headerHiddenheaderHiddenbooleanfalse是否应该隐藏标题 .
pagepagenumber1当前页.
paginationpaginationDataGridPagination | undefined各行的呼呼方式:一个策略, pages 或者说 scroll,和一个大小,一个数字或 auto,比如说. pages, (中文(简体) ), pages 50 或者说 50。 。 。 . auto 符合网格高度的行数,或
sortingsortingDataGridSorting<TData> | undefined排序模式 。 它是一个对象 selector 财务报告和审定财务报表 strategy 属性.
selectabilityselectabilitySelectability | undefined选择模式 。 如果上下文菜单可用, 默认为“ 单一” , 否则为“ 未定义 ” .
isDataSelectableisDataSelectable((data: TData) => boolean) | undefined是否可以选择某一行的数据 .
selectedDataselectedDataTData[]"new Array<TData>()"选中的数据 .
selectOnClickselectOnClickbooleanfalse是否单击时选择行 .
selectionBehaviorOnDataChangeselectionBehaviorOnDataChangeSelectabilityBehaviorOnItemsChange"reset"当数据变化时选择的行为.
reorderabilityreorderabilityboolean | undefined是否可以将行拖入另一个顺序,这在没有进行排序和没有行有细节或子行的情况下有效.
multipleDetailsmultipleDetailsbooleanfalse能否同时打开多个细节.
detailsOpendetailsOpenbooleanfalse打开行到来的细节,直到关闭。 用户可能仍会关闭它们. 需要"多细节".
subDataGridDataSelectorsubDataGridDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined子数据网数据的关键路径.
hasDataDetailhasDataDetail((data: TData) => boolean) | undefined数据是否有细节 .
detailsOnClickdetailsOnClickbooleanfalse是否点击打开细节 .
primaryContextMenuItemOnDoubleClickprimaryContextMenuItemOnDoubleClickbooleanfalse在行上双击或中击单击 mo-data-grid-primary-context-menu-item 上下文菜单.
editabilityeditabilityDataGridEditability"never"可编辑模式 .
getRowDetailsTemplategetRowDetailsTemplate((data: TData) => HTMLTemplateResult) | undefined函数返回给定行细节的模板.
getRowContextMenuTemplategetRowContextMenuTemplate((data: TData[]) => HTMLTemplateResult) | undefined返回给定行上下文菜单模板的函数.
filtersOpenfiltersOpenbooleanfalse是否包含 filter 显示槽 。 工具栏的过滤按钮切换它 .
hasAlternatingBackgroundhasAlternatingBackgroundboolean各行是否应当有交替的背景 .
cellFontSizecellFontSizenumber"value"以雷姆为单位的单元格的字体大小,介于0.8到1.2之间. 默认为 DataGrid.cellRelativeFontSize页:1.
rowHeightrowHeightnumber"DataGrid.rowHeight.value"以像素表示的行高,在30到60之间. 默认为 DataGrid.rowHeight, 35. (中文(简体) ).
exportableexportablebooleanfalseDataGrid 是否可导出 。 这将显示页脚中的导出按钮 .

活动

名称细节
dataChangeTData[]
selectionChangeTData[]
pageChangenumber
paginationChangeDataGridPagination | undefined
columnsChangeDataGridColumn<TData, any>[]
sortingChangeDataGridRankedSortDefinition<TData>[]
reorderDataGridReorderChange<TData>[]
rowDetailsOpenDataGridRow<TData, TDetailsElement>
rowDetailsCloseDataGridRow<TData, TDetailsElement>
rowClickDataGridRow<TData, TDetailsElement>
rowDoubleClickDataGridRow<TData, TDetailsElement>
rowMiddleClickDataGridRow<TData, TDetailsElement>
cellEditDataGridCell<any, TData, TDetailsElement>

槽数

名称说明
column列元素,在被放入网格时会自行指定. 这是隐藏的.
toolbarDataGrid上方的横向条.
toolbar-action工具栏中显示的动作图标按钮的插槽 .
filter过滤 DataGrid 数据的元素 。 在被扩展后,如果工具栏的行全部被放入其所剩的空间,它们就会继续走,否则会被包裹成自己的行. 它通过工具栏中的图标按钮被切换.
sum在 DataGrid 的页脚中显示金额的横向栏 。 计算出的数额也默认放在这里 .
primary-action工具栏最末端的插槽会期望主动作元素(如"添加"按钮)被放入. 被分档的元素取代了槽的默认内容,但补充了它之外产生的主动作,例如实体DataGrid的创建按钮,通过"主动作Hidden"被压制取而代之.
error-no-content在没有数据时显示错误消息的槽 .

CSS 自定义属性

名称说明
--mo-data-grid-footer-background脚印的背景.
--mo-data-grid-cell-padding细胞的内衬垫. 默认为0.5雷姆.
--mo-data-grid-column-sub-row-indentation子行中第一列缩进. 默认为 20px .

mo-data-grid-cell

属性

名称属性类型默认
valuevalueTValue
columncolumnDataGridColumn<TData, TValue>
rowrowDataGridRow<TData, TDetailsElement>

mo-data-grid-column-header

属性

名称属性类型默认说明
columncolumnDataGridColumn<unknown, any>
menuOpenmenuOpenbooleanfalse
templateHTMLTemplateResult模板被制成CompareRoot。 在每个更新上启动以执行渲染任务 .

属性

名称属性类型默认
dataGriddataGridDataGrid<TData, any>
pagepagenumber1

mo-data-grid-header

属性

名称属性类型默认
dataGriddataGridDataGrid<TData, any>
overlayOpenoverlayOpenbooleanfalse

mo-data-grid-header-separator

手柄调整列的大小,在拖动时绘制指针所在的行.

属性

名称属性类型默认
columncolumnDataGridColumn<unknown, any>

mo-data-grid-primary-context-menu-item

属性

名称属性类型默认说明
openopenbooleanfalse子菜单是否打开 .
disableddisabledbooleanfalse列表项是否禁用
iconiconMaterialIcon | undefined在列表项中显示的图标
preventClickOnSpacepreventClickOnSpacebooleanfalse列表项目是否应防止点击空间

槽数

名称说明
submenu子经所取之品.
(默认)内容默认槽

中央支助部分

名称说明
icon内容前的图标.

mo-data-grid-column-boolean

显示布尔为点的一栏,颜色为真假相,无所取用为未定义相.

属性

名称属性类型默认说明
trueColortrueColorstring"var(--mo-color-green)"真值点的颜色
falseColorfalseColorstring"var(--mo-color-red)"错误值的点颜色
dataGriddataGridDataGrid<TData, any> | undefined
widthwidthstring"max-content"列的宽度
hiddenhiddenbooleanfalse列是否隐藏 。 如果可以的话,用户可以在设置面板中显示该列.
headingheadingstring""栏目标题
textAligntextAlignDataGridColumnAlignment"center"列的文本对齐
descriptiondescriptionstring | undefined专栏简介. 它将作为标题上的工具提示显示.
dataSelectordataSelectorobject extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never列的数据选择器
sortDataSelectorsortDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined列的数据选择器
nonSortablenonSortablebooleanfalse列是否可排序
nonEditablenonEditableboolean | Predicate<TData>false列是否可编辑
stickystickyDataGridColumnSticky | undefined列的粘度位置, 要么“ 启动 ” , 要么“ 结束 ” , 要么“ 两者”
contentStylecontentStyleDataGridColumnContentStyle<TData, TValue> | undefined专栏的内容风格. 它可以是字符串,CSSResult,也可以是基于单元格值和数据返回的函数.
getContentTemplate栏目内容模板.
getEditContentTemplate列的编辑内容模板.

mo-data-grid-column

属性

名称属性类型默认说明
dataGriddataGridDataGrid<TData, any> | undefined
widthwidthstring"max-content"列的宽度
hiddenhiddenbooleanfalse列是否隐藏 。 如果可以的话,用户可以在设置面板中显示该列.
headingheadingstring""栏目标题
textAligntextAlignDataGridColumnAlignment"start"列的文本对齐
descriptiondescriptionstring | undefined专栏简介. 它将作为标题上的工具提示显示.
dataSelectordataSelectorobject extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never列的数据选择器
sortDataSelectorsortDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined列的数据选择器
nonSortablenonSortablebooleanfalse列是否可排序
nonEditablenonEditableboolean | Predicate<TData>false列是否可编辑
stickystickyDataGridColumnSticky | undefined列的粘度位置, 要么“ 启动 ” , 要么“ 结束 ” , 要么“ 两者”
contentStylecontentStyleDataGridColumnContentStyle<TData, TValue> | undefined专栏的内容风格. 它可以是字符串,CSSResult,也可以是基于单元格值和数据返回的函数.
getContentTemplate栏目内容模板.
getEditContentTemplate列的编辑内容模板.

mo-data-grid-column-deletion

属性

名称属性类型默认说明
preventpreventbooleanfalse防止显示删除按钮
iconiconMaterialIcon"delete"要显示的图标 。 默认删除
tooltiptooltipstring | undefined按钮的工具提示
disableddisabled((data: TData) => boolean) | undefined是否禁用行按钮
dataGriddataGridDataGrid<TData, any> | undefined
widthwidthstring"max-content"列的宽度
hiddenhiddenbooleanfalse列是否隐藏 。 如果可以的话,用户可以在设置面板中显示该列.
headingheadingstring""栏目标题
textAligntextAlignDataGridColumnAlignment"start"列的文本对齐
descriptiondescriptionstring | undefined专栏简介. 它将作为标题上的工具提示显示.
dataSelectordataSelectorobject extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never列的数据选择器
sortDataSelectorsortDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined列的数据选择器
nonSortablenonSortablebooleantrue列是否可排序
nonEditablenonEditablebooleantrue列是否可编辑
stickystickyDataGridColumnSticky | undefined列的粘度位置, 要么“ 启动 ” , 要么“ 结束 ” , 要么“ 两者”
contentStylecontentStyleDataGridColumnContentStyle<TData, TValue> | undefined专栏的内容风格. 它可以是字符串,CSSResult,也可以是基于单元格值和数据返回的函数.
getEditContentTemplategetEditContentTemplate(_: unknown, data?: TData | undefined) => HTMLTemplateResult"getContentTemplate"列的编辑内容模板.
getContentTemplate栏目内容模板.

活动

名称细节说明
deleteTData
iconClickTData点击行的按钮时随行数据一同发送

mo-data-grid-column-icon-button

每行有一个图标按钮的列,在行被编辑时仍可点击.

属性

名称属性类型默认说明
iconiconMaterialIcon按钮的图标
tooltiptooltipstring | undefined按钮的工具提示
disableddisabled((data: TData) => boolean) | undefined是否禁用行按钮
dataGriddataGridDataGrid<TData, any> | undefined
widthwidthstring"max-content"列的宽度
hiddenhiddenbooleanfalse列是否隐藏 。 如果可以的话,用户可以在设置面板中显示该列.
headingheadingstring""栏目标题
textAligntextAlignDataGridColumnAlignment"start"列的文本对齐
descriptiondescriptionstring | undefined专栏简介. 它将作为标题上的工具提示显示.
dataSelectordataSelectorobject extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never列的数据选择器
sortDataSelectorsortDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined列的数据选择器
nonSortablenonSortablebooleantrue列是否可排序
nonEditablenonEditableboolean | Predicate<TData>false列是否可编辑
stickystickyDataGridColumnSticky | undefined列的粘度位置, 要么“ 启动 ” , 要么“ 结束 ” , 要么“ 两者”
contentStylecontentStyleDataGridColumnContentStyle<TData, TValue> | undefined专栏的内容风格. 它可以是字符串,CSSResult,也可以是基于单元格值和数据返回的函数.
getEditContentTemplategetEditContentTemplate(_: unknown, data?: TData | undefined) => HTMLTemplateResult"getContentTemplate"列的编辑内容模板.
getContentTemplate栏目内容模板.

活动

名称细节说明
iconClickTData点击行的按钮时随行数据一同发送

mo-data-grid-column-image

属性

名称属性类型默认说明
tooltipSelectortooltipSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | ((data: TData) => string | undefined) | undefined要用作工具提示的列的数据选择器。 如果提供了一个函数,它将被调用为数据作为参数.
dataGriddataGridDataGrid<TData, any> | undefined
widthwidthstring"max-content"列的宽度
hiddenhiddenbooleanfalse列是否隐藏 。 如果可以的话,用户可以在设置面板中显示该列.
headingheadingstring""栏目标题
textAligntextAlignDataGridColumnAlignment"start"列的文本对齐
descriptiondescriptionstring | undefined专栏简介. 它将作为标题上的工具提示显示.
dataSelectordataSelectorobject extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never列的数据选择器
sortDataSelectorsortDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined列的数据选择器
nonSortablenonSortablebooleantrue列是否可排序
nonEditablenonEditablebooleantrue列是否可编辑
stickystickyDataGridColumnSticky | undefined列的粘度位置, 要么“ 启动 ” , 要么“ 结束 ” , 要么“ 两者”
contentStylecontentStyleDataGridColumnContentStyle<TData, TValue> | undefined专栏的内容风格. 它可以是字符串,CSSResult,也可以是基于单元格值和数据返回的函数.
getContentTemplate栏目内容模板.
getEditContentTemplate列的编辑内容模板.

mo-data-grid-column-text

属性

名称属性类型默认说明
dataGriddataGridDataGrid<TData, any> | undefined
widthwidthstring"max-content"列的宽度
hiddenhiddenbooleanfalse列是否隐藏 。 如果可以的话,用户可以在设置面板中显示该列.
headingheadingstring""栏目标题
textAligntextAlignDataGridColumnAlignment"start"列的文本对齐
descriptiondescriptionstring | undefined专栏简介. 它将作为标题上的工具提示显示.
dataSelectordataSelectorobject extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never列的数据选择器
sortDataSelectorsortDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined列的数据选择器
nonSortablenonSortablebooleanfalse列是否可排序
nonEditablenonEditableboolean | Predicate<TData>false列是否可编辑
stickystickyDataGridColumnSticky | undefined列的粘度位置, 要么“ 启动 ” , 要么“ 结束 ” , 要么“ 两者”
contentStylecontentStyleDataGridColumnContentStyle<TData, TValue> | undefined专栏的内容风格. 它可以是字符串,CSSResult,也可以是基于单元格值和数据返回的函数.
getContentTemplate栏目内容模板.
getEditContentTemplate列的编辑内容模板.

mo-data-grid-column-date

属性

名称属性类型默认说明
formatOptionsformatOptionsDateTimeFormatOptions | undefined传递到 DateTime.prottotype.format () 的选项
precisionprecisionFieldDateTimePrecision"Day"日期/时间的精确性.
pickerHiddenpickerHiddenbooleanfalse隐藏日期/ 时间拾取器
dataGriddataGridDataGrid<TData, any> | undefined
widthwidthstring"max-content"列的宽度
hiddenhiddenbooleanfalse列是否隐藏 。 如果可以的话,用户可以在设置面板中显示该列.
headingheadingstring""栏目标题
textAligntextAlignDataGridColumnAlignment"start"列的文本对齐
descriptiondescriptionstring | undefined专栏简介. 它将作为标题上的工具提示显示.
dataSelectordataSelectorobject extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never列的数据选择器
sortDataSelectorsortDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined列的数据选择器
nonSortablenonSortablebooleanfalse列是否可排序
nonEditablenonEditableboolean | Predicate<TData>false列是否可编辑
stickystickyDataGridColumnSticky | undefined列的粘度位置, 要么“ 启动 ” , 要么“ 结束 ” , 要么“ 两者”
contentStylecontentStyleDataGridColumnContentStyle<TData, TValue> | undefined专栏的内容风格. 它可以是字符串,CSSResult,也可以是基于单元格值和数据返回的函数.
getContentTemplate栏目内容模板.
getEditContentTemplate列的编辑内容模板.

mo-data-grid-column-date-range

属性

名称属性类型默认说明
formatOptionsformatOptionsDateTimeFormatOptions | undefined传递到 DateTime.prottotype.format () 的选项
precisionprecisionFieldDateTimePrecision"Day"日期/时间的精确性.
pickerHiddenpickerHiddenbooleanfalse隐藏日期/ 时间拾取器
dataGriddataGridDataGrid<TData, any> | undefined
widthwidthstring"max-content"列的宽度
hiddenhiddenbooleanfalse列是否隐藏 。 如果可以的话,用户可以在设置面板中显示该列.
headingheadingstring""栏目标题
textAligntextAlignDataGridColumnAlignment"start"列的文本对齐
descriptiondescriptionstring | undefined专栏简介. 它将作为标题上的工具提示显示.
dataSelectordataSelectorobject extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never列的数据选择器
sortDataSelectorsortDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined列的数据选择器
nonSortablenonSortablebooleanfalse列是否可排序
nonEditablenonEditableboolean | Predicate<TData>false列是否可编辑
stickystickyDataGridColumnSticky | undefined列的粘度位置, 要么“ 启动 ” , 要么“ 结束 ” , 要么“ 两者”
contentStylecontentStyleDataGridColumnContentStyle<TData, TValue> | undefined专栏的内容风格. 它可以是字符串,CSSResult,也可以是基于单元格值和数据返回的函数.
getContentTemplate栏目内容模板.
getEditContentTemplate列的编辑内容模板.

mo-data-grid-column-date-time

属性

名称属性类型默认说明
formatOptionsformatOptionsDateTimeFormatOptions | undefined传递到 DateTime.prottotype.format () 的选项
precisionprecisionFieldDateTimePrecision"Minute"日期/时间的精确性.
pickerHiddenpickerHiddenbooleanfalse隐藏日期/ 时间拾取器
dataGriddataGridDataGrid<TData, any> | undefined
widthwidthstring"max-content"列的宽度
hiddenhiddenbooleanfalse列是否隐藏 。 如果可以的话,用户可以在设置面板中显示该列.
headingheadingstring""栏目标题
textAligntextAlignDataGridColumnAlignment"start"列的文本对齐
descriptiondescriptionstring | undefined专栏简介. 它将作为标题上的工具提示显示.
dataSelectordataSelectorobject extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never列的数据选择器
sortDataSelectorsortDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined列的数据选择器
nonSortablenonSortablebooleanfalse列是否可排序
nonEditablenonEditableboolean | Predicate<TData>false列是否可编辑
stickystickyDataGridColumnSticky | undefined列的粘度位置, 要么“ 启动 ” , 要么“ 结束 ” , 要么“ 两者”
contentStylecontentStyleDataGridColumnContentStyle<TData, TValue> | undefined专栏的内容风格. 它可以是字符串,CSSResult,也可以是基于单元格值和数据返回的函数.
getContentTemplate栏目内容模板.
getEditContentTemplate列的编辑内容模板.

mo-data-grid-column-date-time-range

属性

名称属性类型默认说明
formatOptionsformatOptionsDateTimeFormatOptions | undefined传递到 DateTime.prottotype.format () 的选项
precisionprecisionFieldDateTimePrecision"Minute"日期/时间的精确性.
pickerHiddenpickerHiddenbooleanfalse隐藏日期/ 时间拾取器
dataGriddataGridDataGrid<TData, any> | undefined
widthwidthstring"max-content"列的宽度
hiddenhiddenbooleanfalse列是否隐藏 。 如果可以的话,用户可以在设置面板中显示该列.
headingheadingstring""栏目标题
textAligntextAlignDataGridColumnAlignment"start"列的文本对齐
descriptiondescriptionstring | undefined专栏简介. 它将作为标题上的工具提示显示.
dataSelectordataSelectorobject extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never列的数据选择器
sortDataSelectorsortDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined列的数据选择器
nonSortablenonSortablebooleanfalse列是否可排序
nonEditablenonEditableboolean | Predicate<TData>false列是否可编辑
stickystickyDataGridColumnSticky | undefined列的粘度位置, 要么“ 启动 ” , 要么“ 结束 ” , 要么“ 两者”
contentStylecontentStyleDataGridColumnContentStyle<TData, TValue> | undefined专栏的内容风格. 它可以是字符串,CSSResult,也可以是基于单元格值和数据返回的函数.
getContentTemplate栏目内容模板.
getEditContentTemplate列的编辑内容模板.

mo-data-grid-column-image-preview

每行有一个按钮的一列,在弹出式中预览行的图像 . 除非 getSource 解决它,例如从文件ID.

属性

名称属性类型默认说明
getSource(value: TValue) => DataGridImagePreviewSource解析其图像源的值, 可能是同步的, 当其预览打开时.
dataGriddataGridDataGrid<TData, any> | undefined
widthwidthstring"max-content"列的宽度
hiddenhiddenbooleanfalse列是否隐藏 。 如果可以的话,用户可以在设置面板中显示该列.
headingheadingstring""栏目标题
textAligntextAlignDataGridColumnAlignment"start"列的文本对齐
descriptiondescriptionstring | undefined专栏简介. 它将作为标题上的工具提示显示.
dataSelectordataSelectorobject extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never列的数据选择器
sortDataSelectorsortDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined列的数据选择器
nonSortablenonSortablebooleantrue列是否可排序
nonEditablenonEditablebooleantrue列是否可编辑
stickystickyDataGridColumnSticky | undefined列的粘度位置, 要么“ 启动 ” , 要么“ 结束 ” , 要么“ 两者”
contentStylecontentStyleDataGridColumnContentStyle<TData, TValue> | undefined专栏的内容风格. 它可以是字符串,CSSResult,也可以是基于单元格值和数据返回的函数.
getContentTemplate栏目内容模板.
getEditContentTemplate列的编辑内容模板.

mo-data-grid-image-preview

属性

名称属性类型默认说明
valuevalueunknown图像被预览的值, 解析到图像源 getSource。 。 。 .
getSourcegetSource((value: unknown) => DataGridImagePreviewSource) | undefined确定图像源的值,即默认值本身.
imageHiddenimageHiddenbooleanfalse是否只显示没有图像的已排定档期的内容 .

槽数

名称说明
(默认)图像上显示的内容 .
close关闭预览的动作, 在内容旁边显示 .

mo-data-grid-image-preview-button

属性

名称属性类型默认说明
valuevalueunknown图像预览值 .
getSourcegetSource((value: unknown) => DataGridImagePreviewSource) | undefined决定图像源的值.

槽数

名称说明
(默认)预览中图像上方显示的内容 .

mo-data-grid-column-currency

属性

名称属性类型默认说明
currencycurrencyCurrency | undefined价值的货币.
currencyDataSelectorcurrencyDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined数值货币的关键路径 .
formatOptionsformatOptionsNumberFormatOptions | undefined
sumHeadingsumHeadingstring | undefined"undefined"
minminnumber | undefined
minDataSelectorminDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined
maxmaxnumber | undefined
maxDataSelectormaxDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined
stepstepnumber | undefined
stepDataSelectorstepDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined
dataGriddataGridDataGrid<TData, any> | undefined
widthwidthstring"max-content"列的宽度
hiddenhiddenbooleanfalse列是否隐藏 。 如果可以的话,用户可以在设置面板中显示该列.
headingheadingstring""栏目标题
textAligntextAlignDataGridColumnAlignment"end"列的文本对齐
descriptiondescriptionstring | undefined专栏简介. 它将作为标题上的工具提示显示.
dataSelectordataSelectorobject extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never列的数据选择器
sortDataSelectorsortDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined列的数据选择器
nonSortablenonSortablebooleanfalse列是否可排序
nonEditablenonEditableboolean | Predicate<TData>false列是否可编辑
stickystickyDataGridColumnSticky | undefined列的粘度位置, 要么“ 启动 ” , 要么“ 结束 ” , 要么“ 两者”
contentStylecontentStyleDataGridColumnContentStyle<TData, TValue> | undefined专栏的内容风格. 它可以是字符串,CSSResult,也可以是基于单元格值和数据返回的函数.
getContentTemplate栏目内容模板.
getEditContentTemplate列的编辑内容模板.

mo-data-grid-column-number

属性

名称属性类型默认说明
formatOptionsformatOptionsNumberFormatOptions | undefined
sumHeadingsumHeadingstring | undefined"undefined"
minminnumber | undefined
minDataSelectorminDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined
maxmaxnumber | undefined
maxDataSelectormaxDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined
stepstepnumber | undefined
stepDataSelectorstepDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined
dataGriddataGridDataGrid<TData, any> | undefined
widthwidthstring"max-content"列的宽度
hiddenhiddenbooleanfalse列是否隐藏 。 如果可以的话,用户可以在设置面板中显示该列.
headingheadingstring""栏目标题
textAligntextAlignDataGridColumnAlignment"end"列的文本对齐
descriptiondescriptionstring | undefined专栏简介. 它将作为标题上的工具提示显示.
dataSelectordataSelectorobject extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never列的数据选择器
sortDataSelectorsortDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined列的数据选择器
nonSortablenonSortablebooleanfalse列是否可排序
nonEditablenonEditableboolean | Predicate<TData>false列是否可编辑
stickystickyDataGridColumnSticky | undefined列的粘度位置, 要么“ 启动 ” , 要么“ 结束 ” , 要么“ 两者”
contentStylecontentStyleDataGridColumnContentStyle<TData, TValue> | undefined专栏的内容风格. 它可以是字符串,CSSResult,也可以是基于单元格值和数据返回的函数.
getContentTemplate栏目内容模板.
getEditContentTemplate列的编辑内容模板.

mo-data-grid-column-percent

属性

名称属性类型默认说明
formatOptionsformatOptionsNumberFormatOptions | undefined
sumHeadingsumHeadingstring | undefined"undefined"
minminnumber | undefined
minDataSelectorminDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined
maxmaxnumber | undefined
maxDataSelectormaxDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined
stepstepnumber | undefined
stepDataSelectorstepDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined
dataGriddataGridDataGrid<TData, any> | undefined
widthwidthstring"max-content"列的宽度
hiddenhiddenbooleanfalse列是否隐藏 。 如果可以的话,用户可以在设置面板中显示该列.
headingheadingstring""栏目标题
textAligntextAlignDataGridColumnAlignment"end"列的文本对齐
descriptiondescriptionstring | undefined专栏简介. 它将作为标题上的工具提示显示.
dataSelectordataSelectorobject extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never列的数据选择器
sortDataSelectorsortDataSelector(object extends Required<TData> ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | Extract<keyof TData, string> | SubKeyPathOf<...> : TData extends object ? Extract<...> | SubKeyPathOf<...> : never) | undefined列的数据选择器
nonSortablenonSortablebooleanfalse列是否可排序
nonEditablenonEditableboolean | Predicate<TData>false列是否可编辑
stickystickyDataGridColumnSticky | undefined列的粘度位置, 要么“ 启动 ” , 要么“ 结束 ” , 要么“ 两者”
contentStylecontentStyleDataGridColumnContentStyle<TData, TValue> | undefined专栏的内容风格. 它可以是字符串,CSSResult,也可以是基于单元格值和数据返回的函数.
getContentTemplate栏目内容模板.
getEditContentTemplate列的编辑内容模板.

属性

名称属性类型默认
headingheadingstring""

槽数

名称说明
(默认)总价值

mo-data-grid-default-row

属性

名称属性类型默认
dataRecorddataRecordDataRecord<TData>

活动

名称细节
contextmenu

许可证

麻省理工学院 3MO GmbH

版本与发布记录

@3mo/data-grid 共发布 362 个版本,首次发布于 2023/05/12;过去 12 个月发布了 76 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.41.0latest2026/10/307 天前
0.40.02026/10/2610 天前
0.39.02026/10/2017 天前
0.38.92026/10/1027 天前
0.38.82026/10/0829 天前
0.38.72026/10/0729 天前

其他发布通道:alpha → 0.12.6-preview.2,preview → 0.38.0-preview.0。

关于 @3mo/data-grid 的常见问题

@3mo/data-grid 是什么?

用于数据网格的网页组件,有打入的列,排序,选择,页码,行细节和行内编辑等功能.

如何安装 @3mo/data-grid?

在项目目录运行 npm install @3mo/data-grid,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@3mo/tab(x)、@3mo/flex(x)、@3mo/grid(x)、@3mo/icon(x)、@3mo/line(x)、@3mo/menu(>=0.11.0)、@a11d/lit(>=0.14.1)、@3mo/theme(>=0.4.x)、@3mo/anchor(x)、@3mo/heading(x)、@3mo/popover(>=0.11.0)、@3mo/section(x)、@3mo/tooltip(>=0.11.0)、@3mo/checkbox(x)、@3mo/scroller(>=0.5.0)、@3mo/splitter(x)、@3mo/hierarchy(x)、@3mo/downloader(x)、@3mo/empty-state(x)、@3mo/icon-button(x)、@3mo/text-fields(x)、@3mo/context-menu(>=0.7.0)、@3mo/localization(x)、@3mo/navigability(x)、@3mo/select-field(x)、@3mo/expandability(x)、@3mo/number-fields(x)、@3mo/selectability(>=0.3.0)、@3mo/reorderability(x)、@3mo/resize-observer(x)、@3mo/slot-controller(x)、@3mo/date-time-fields(x)、@a11d/lit-application(x)、@3mo/circular-progress(x)、@3mo/pointer-controller(>=1.6.0)、@3mo/instanceof-attribute-controller(x)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@3mo/data-grid 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@3mo/data-grid 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@3mo/data-grid 可以商用吗?

@3mo/data-grid 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@3mo/data-grid 的下载量有多少?

根据 npm 官方下载统计,@3mo/data-grid 在 2026/10/05 – 2026/11/03 这 30 天内被下载 3,749 次,日均约 125 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@3mo/data-grid 还在维护吗?

最新版本 0.41.0 发布于 2026/10/30(7 天前);至今共发布 362 个版本,其中过去 12 个月发布了 76 个;首次发布于 2023/05/12。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。