选择所有作品可以取消选择部分作品,但不能选择或清除全部作品

问题描述 投票:0回答:2

我创建了一个启用多选的剑道网格:

    <kendo-grid
      [reorderable]="false"
      class="border"
      [kendoGridBinding]="data"
      [selectable]="{ enabled: true, checkboxOnly: false, mode: 'multiple' }"
      scrollable="none"
    >
      <kendo-grid-checkbox-column
        [showSelectAll]="true"
        [width]="40"
        [columnMenu]="false"
        headerClass="col-header"
      ></kendo-grid-checkbox-column>
      <kendo-grid-column
        title="Person Name"
        headerClass="font-weight-bold col-header"
      >
        <ng-template kendoGridCellTemplate let-dataItem>
          {{ dataItem.lastName }}, {{ dataItem.firstName }}
        </ng-template>
      </kendo-grid-column>

我在

showSelectAll
上使用
kendo-grid-checkbox-column
,以便通过标题中的复选框选择所有网格行。我在文档中的 Kendo for Angular 演示中看到了这项工作。

对我来说,当未选择任何内容时,单击标题复选框不会执行任何操作:

Nothing selected, header checkbox doesn't work

当我手动选择一行时,单击显示“-”符号的标题复选框将取消选择选定的行:

Some rows selected, header checkbox works

当我手动选择所有行时(按住 Shift 键单击它们可以),单击带有复选标记的标题复选框也不起作用:

All rows selected, header checkbox does not work

所以它不适用于选择全部或取消选择全部,但适用于取消选择某些。

有什么想法我做错了什么以及我应该尝试如何让它发挥作用吗?

谢谢!

angular kendo-ui kendo-grid
2个回答
0
投票

根据提供的信息,真的很难判断可能导致问题的原因 - 我刚刚使用最新官方版本的 Kendo 包和提供的标记创建了一个 StackBlitz 演示,并且它似乎按预期工作:

https://stackblitz.com/edit/angular-gmiahh?file=src%2Fapp%2Fapp.component.ts,src%2Fapp%2Fapp.module.ts

您可以将其与实际实施进行比较并应用必要的调整。

编辑:如果网格恰好与 Angular Material CDK Overlay 一起使用,您还可以查看这篇文章:

https://www.telerik.com/kendo-angular-ui/components/knowledge-base/selectall-ngmaterialcdk/


0
投票

在对我们自己的问题进行故障排除后(与所描述的问题类似),我发现我们的问题是由变更检测策略引起的。

最初,我们将其设置为:

changeDetection: ChangeDetectionStrategy.OnPush

然后我们将其删除,并且它没有对网格造成任何问题。 添加更多功能后,全选停止工作。 重新添加更改检测后,它再次开始工作。 不知道为什么或什么影响它停止工作。

© www.soinside.com 2019 - 2024. All rights reserved.