【问题标题】:Mat-table with expandable rows, remove hidden rows具有可扩展行的垫表,删除隐藏行
【发布时间】:2020-05-06 23:52:08
【问题描述】:

我正在使用这个嵌套材料表的 stackblitz 示例在我的项目中创建类似的表。 https://stackblitz.com/edit/angular-nested-mat-table?file=app%2Ftable-expandable-rows-example.ts

这种方法会创建一个“隐藏”行,如果您要检查该页面,则会有“example-element-row”类的行,然后是“example-detail-row”类的行。 “示例详细信息行”。是隐藏的。

我遇到的问题与我的公司 CSS 表格类有关,它添加了额外的填充 + 条状视图(每一行都有灰色背景) - 使用这个 CSS 类,我的表格看起来很糟糕,因为无论如何都会显示隐藏行

是否有可能克服这个问题?我尝试在下面的代码中添加带有一些标志的 ngif,但是即使表格渲染得很好,它也会破坏可扩展行功能

<tr *ngIf="flag" mat-row *matRowDef="let row; columns: ['expandedDetail']" class="example-detail-row"></tr>

【问题讨论】:

    标签: css angular angular-material angular-material-table


    【解决方案1】:

    为了复制由贵公司 CSS 引起的行为,我将以下 CSS 块添加到 stackblitz link which you shared:

    tr td {
      padding:5px 0;
    }
    

    这是典型的网站通用 css 规则...解决,我们只需要通过更详细的 css 规则来覆盖它:

    .mat-row.example-detail-row td{
    /* comment this to see the problem behavior */
      padding:0;
    }
    

    完成working stackblitz here

    【讨论】:

    • 这很简单,而且很有效,我花了很多时间在组件 CSS 文件中尝试不同的组合,但没有成功。太感谢了!还有一个问题,使用此解决方案是否仍然可以将灰色/白色背景应用于奇数/偶数行?
    • 谢谢你的好话...对于css,我们的问题是每个第二行都需要隐藏,所以我们不能使用:nth-child(odd)或:nth-child(even)...但我们可以使用以下内容:` tr:nth-child(4n+1) { background: lightgreen; } tr:nth-child(4n+3) { 背景:浅蓝色; } tr.mat-h​​eader-row { 背景:浅粉色; }` - 我的答案中的 stackblitz 也随之更新
    猜你喜欢
    • 2019-08-11
    • 1970-01-01
    • 2017-09-07
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多