使用 rowSelected 在 Angular Kendo UI 网格中设置初始选定行

Set initial selected rows in Angular Kendo UI grid with rowSelected

我有一个 Kendo UI 网格,您可以在其中 select 单独的行,方法是单击一个复选框将它们添加到数组中;但是,我想根据每行的 dataItem 是否在名为 selectedAccounts.

的指定数组中来初始设置 selected 行

我曾尝试使用 [rowSelected]="isRowSelected",但使用此方法不允许我 check/uncheck selection 复选框。

我需要能够最初设置 selected 条件,并在需要时更改 selection。还值得注意的是,当我在 selectedAccounts.

中一无所有时,我没有遇到任何问题

Here 是一个 stackblitz 供参考。

事实证明我已经正确设置了所有内容,但是我在打字稿文件中使用 isRowSelected 的方式有误。我原来有:

public isRowSelected = (e: RowArgs) => this.selectedAccounts.indexOf(e.dataItem) >= 0;}

上面的代码总是 return 错误,但仍然正确显示 selectedAccounts

进行以下更改后,可以正确读取 selectedAccounts 并允许我在更新 selectedAccounts 数组时根据需要切换复选框,而不会导致任何其他问题。

public isRowSelected = (e: RowArgs) => { 
  return this.selectedAccounts.find(f => e.dataItem.accountId === f.accountId) ? true : false;
}

希望这个回答对其他人有帮助。我更新了 stackblitz 以反映正确的代码。