我有一个使用Teradata Covalent Data Table组件的Angular2 Web应用程序,启用了数据分页和行选择。数据通过REST api以小块的形式被拉出,而不是同时被所有行拉出,因此行选择不会在来回分页期间自动呈现。即,如果我在第1页上选择一行,则导航到第2页,然后返回第1页,第1页上的选定行不会突出显示。
我不确定这是否可以由blah.component.html文件中的模板条目处理,或者我是否需要在blah.component.ts(TypeScript)文件中执行某些操作。
在选择和取消选择行时,我在数字数组中跟踪所选行唯一ID。在.ts文件中 - > selectedItems:number [];
这是数据表的html代码:
<td-data-table [data]="items.content" [columns]="columns" [sortable]="true" [sortBy]="sortBy" [sortOrder]="sortOrder" [selectable]="true" [multiple]="true" (sortChange)="sort($event)" (rowSelect)="selectRow($event)" (selectAll)="selectAllRows($event)">
<template tdDataTableTemplate="matchCount" let-value="value" let-row="row" let-column="column">
<div layout="row">
<span flex>{{value | number:0}}</span>
</div>
</template>
<template tdDataTableTemplate="itemSize" let-value="value" let-row="row" let-column="column">
<div layout="row">
<span flex>{{value | bytes}}</span>
</div>
</template>
答案 0 :(得分:3)
我联系了Grad Teradata /共同聊天组,他们能够帮助我。您只需循环遍历selectedRows中的值和新数据集中的值以查找任何匹配项。如果找到匹配项,只需将其从带有.splice的selectedRows中删除,然后将其从数据集中重新添加。实际上,它只是手动更新ngmodel。
this.selectedRows.splice(parseInt(x),1,this.newRow.content[y]);