【问题标题】:CDK Table / Material Table with irregular header: how to get two tier header?带有不规则表头的 CDK 表/材料表:如何获得两层表头?
【发布时间】:2018-04-04 02:25:32
【问题描述】:

我是 Angular 的新手,我想知道是否有可能使用 CDK 表/材料表来创建一个带有类似于此处描述的不规则标题的多层表:https://www.w3.org/WAI/tutorials/tables/irregular/

例如,我的数据由 5 列组成:

  • 姓名(例如“棕色头发的人”)
  • 男性(例如 1)
  • 女性(例如 2 个)
  • 男性(例如 3)
  • 女性(例如 4 个)

标题的位置:

  • 女性
  • 女性

现在交易来了,我有 2 次男性和女性的原因是我想将它们分组为“18 岁”。理想情况下,它看起来像上述网站上的示例 1。

如果这是不可能的,实现它的最佳组件是什么,或者我应该将 ngFor 与普通 html 表结合使用?

【问题讨论】:

    标签: angular html-table angular-material


    【解决方案1】:

    您可以在具有材质类的表格之前添加一个元素:

    <div class="mat-header-row">
      <div class="mat-header-cell"> empty (column 1) </div>
      <div class="mat-header-cell"> columns 2-3 </div>
      <div class="mat-header-cell"> columns 4-5 </div>
    </div>
    
    <mat-table>...
    

    【讨论】:

    • 哦,是的,那当然是另一种选择。您是否还有建议我如何确保 div 2 和 3 始终匹配 mat-table 中第 2/3 和 4/5 列的位置?我不是 100% 确定如何正确调整表格的大小,但目前我认为我会让每列占用相等的空间。
    • 在大小相等的情况下,我猜 20% 和 40%/40% 的宽度可以解决问题,但是当列宽可变时如何工作?
    • 单元格也有 mat-column-PROPERTY 类,例如 mat-column-male17 或任何您命名的列。您可以使用它们来控制列的样式。
    • 不错。我想我的问题更像是一个一般的 CSS 问题。所以在表头中我会有 mat-column-male17 和 mat-column-female17。我将如何确保我的附加标题,我们称之为 mat-h​​eader-17,将从 mat-column-male17 的开头开始并在 mat-column-female17 的末尾结束?对不起,如果这是一个愚蠢的问题,但我对 CSS 和 JS 不太熟悉。我想我可以尝试通过 JS 获取列,检查它们的宽度和 mat-column-male17 的位置并计算标题的宽度和 opsition - 或者有没有更好的纯 css 方法?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 2019-03-25
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    • 2018-05-06
    相关资源
    最近更新 更多