使用 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 以反映正确的代码。
我有一个 Kendo UI 网格,您可以在其中 select 单独的行,方法是单击一个复选框将它们添加到数组中;但是,我想根据每行的 dataItem
是否在名为 selectedAccounts
.
我曾尝试使用 [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 以反映正确的代码。