【问题标题】:Data disappears from mat table when grouping分组时数据从垫表中消失
【发布时间】:2021-06-22 00:40:37
【问题描述】:

当搜索栏处于焦点时,行从 mat-table 中消失,然后对表进行分组。当我对它进行分组时,数据源的 filtereddata 属性变为空。 当过滤或将焦点放在搜索栏上时,表格会被过滤,但是如果我对它进行分组或取消分组,mat table 的行就会消失。

这是 stackblitz 示例 https://stackblitz.com/edit/%2Fapp.component.ts

【问题讨论】:

    标签: angular typescript angular-material mat-table angular-material-table


    【解决方案1】:

    您的行“消失”的原因是您在关注搜索字段时更改了过滤谓词:

    (focus)="setupFilter()"
    

    然后,当您对行进行分组时(即在您的 groupBy(event, column) 方法中),您应用一个新的过滤器值:

    this.dataSource.filter = performance.now().toString();
    

    然后,您的谓词为所有行返回 false,这意味着它们被过滤掉了。

    老实说,你不确定你想在这里通过所有过滤器重新应用和谓词交换来实现什么,但这就是你的行没有呈现的原因。

    【讨论】:

    • 有没有办法让它工作。groupby中的filter用于展开和折叠groupheader
    • 这不是你问的问题的范围 - 我想说看看那里的多个教程之一。我的两分钱 - 过滤和分组应该是不同的逻辑,即分组不应该将更改应用于过滤。最简单的方法可能是将组中的所有行标记为“折叠”,并为非标题行的*matRowDefwhen: 选择器添加适当的逻辑。
    猜你喜欢
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 2011-04-14
    • 2017-12-11
    • 2020-02-19
    • 1970-01-01
    • 2019-05-13
    • 1970-01-01
    相关资源
    最近更新 更多