如何以编程方式清除所有datagrid过滤器?

时间:2018-04-04 15:36:44

标签: vmware-clarity

我想要一个按钮,用户可以点击该按钮清除所有过滤器。我还没有办法这样做。任何提示?我有混合使用默认和自定义列过滤器

<clr-datagrid (clrDgRefresh)="refresh($event)" [clrDgLoading]="loading">
  <clr-dg-column [clrDgField]="'healthScore'" class="healthScoreWidth">
  Health
  <clr-dg-filter [clrDgFilter]="refHealthScoreFilter">
      <app-filter-checkbox #refHealthScoreFilter [items]="healthScoreItems" [filter]="healthScoreFilter">
      </app-filter-checkbox>
  </clr-dg-filter>
</clr-dg-column>
<clr-dg-column [clrDgField]="'name'">System</clr-dg-column>
<clr-dg-column [clrDgField]="'serialNumber'">Serial Number</clr-dg-column>
...
</clr-datagrid>

1 个答案:

答案 0 :(得分:0)

我们目前正致力于https://github.com/vmware/clarity/issues/2094,它将提供一种简单的方法来将Datagrid的整个状态设置为您需要的任何内容。

与此同时,您必须单独清除过滤器。如何执行此操作取决于您使用的过滤器类型,数据网格列是否是动态的,是否由*ngFor生成,是否提供了自定义过滤器,...

以下是一个示例,说明如果您使用默认过滤器,如何执行此操作:https://stackblitz.com/edit/clarity-datagrid-clear-filters?file=app%2Fapp.component.ts 它使用@ViewChildren获取列,然后在其上设置公共filterValue属性。

如果我的示例与您的使用案例不符,请分享您的实际代码,以便我们可以帮助您找出正确的解决方法,直到上面关联的问题关闭为止。