课程章节介绍
同学们,今天我们来聊一聊 Lightning Web Components 里数据表的自定义数据类型布局,这部分内容其实挺实用的,掌握了以后你能更灵活地控制表格里每个单元格的呈现样式。
首先,自定义数据类型的布局有两种选择:标准模式和裸模式。标准模式会匹配 Salesforce 的内置类型,还会自动加上辅助功能支持,让键盘导航、屏幕阅读这些都顺畅;裸模式呢,就非常纯粹,只提供最基础的结构,几乎不干涉你,方便你完全按照自己的设计来定制样式。简单说,标准就是“开箱即用”,裸就是“给你张白纸”。
接下来是列样式。你可以给整列的所有行应用一个静态的 CSS 类,直接用字符串就好;也可以根据不同行的数据动态切换样式,这时候就要用到基于 fieldName 的类映射了。不过要记住,动态样式只支持 SLDS 设计系统的实用类,不能直接用你自定义的 CSS 类,否则会出问题。所以想加自定义外观,还是在裸模式下通过内联样式或自定义模板实现更安全。
然后是内容对齐,用 cellAlignment 属性就能搞定,它支持 left、center、right 这三个值,分别对应左对齐、居中、右对齐,一眼就能看懂。
文本处理方面,有个 wrapText 开关,可以控制表格里的文字是自动换行还是截断。如果你想自己写自定义类型的模板,那换行模式要用 slds-wrapped 这个 SLDS 类,截断模式就用 slds-truncate,这样样式才符合规范。另外还有个 wrap-text-max-lines 属性,它能开启行数限制,让长文本只显示几行,后面自动加省略号,很适合用来做摘要展示。
最后讲讲事件。如果你在自定义数据类型模板里触发了一个自定义事件,想让这个事件穿透数据表内部、被外部的父组件监听到,那么就一定要给事件加上 composed: true 和 bubble: true,缺一个都不行。但有一种特殊情况:只要你的自定义类型是基于插槽的,那么事件可以直接在 lightning-datatable 元素上监听,不用额外操心传播的配置。记住这个差别,以后排查事件触发失败会很有帮助。
好了,这部分内容就是这些,理解了布局、样式、对齐、文本处理和事件传播这几个点,你就能玩转数据表的自定义列了。我们下次再见!
关键词
LWC
Lightning Web Components
Salesforce