"角度全选"框正在选择ngx数据表中的禁用复选框



在ngx数据表中,我根据某些编码禁用了某些行的复选框。如果我单击全选复选框,它也在选中禁用的复选框。 如何解决它,它不应该选中禁用的复选框。

请为我提供解决方案。 在这里,我添加了代码。

.HTML

<ngx-datatable-column [width]="30" [sortable]="false" [canAutoResize]="false" [draggable]="false" [resizeable]="false">
<ng-template ngx-datatable-header-template let-value="value" let-allRowsSelected="allRowsSelected"
let-selectFn="selectFn">
<input type="checkbox" [checked]="allRowsSelected" (change)="selectFn(!allRowsSelected)" />
</ng-template>
<ng-template ngx-datatable-cell-template let-row="row" let-value="value" let-isSelected="isSelected" let-onCheckboxChangeFn="onCheckboxChangeFn">
<input type="checkbox" [checked]="isSelected" (change)="onCheckboxChangeFn($event)" [disabled]="defaultRecord(row)"/>
</ng-template>
</ngx-datatable-column>

TS 文件

defaultRecord(row) {
if (row.username === "excadmin") {
this.buttonDisabled = true;
return true;
} else {
this.buttonDisabled = false;
return false;
}
}

您可以将(select)="onSelect($event)添加到 ngx-datatable 标头中,然后在打字稿中定义以下函数:

selected = []
onSelect({ selected }) {
this.selected.splice(0, this.selected.length);
this.selected = selected.filter(e => this.defaultRecord(e));
}

这样,您将避免选择禁用的复选框行

最新更新