我正在通过有 Angular Material 的垫 table 组件实现一个 table 。 当代码中的某些事件触发时,我想跳到特定行。
到目前为止,我尝试在行和虚拟滚动上使用 (focus)
事件。
但我认为我错过了一些东西,它应该比这更简单。
最佳答案
我找到了this question我对这些进行了一些更改,这将解决我的问题。
简而言之 - scrollIntoView
- 如果有人下次需要它,我的代码附在下面。
//.tpl
<tr mat-row
#matrow
[attr.serialNumber] = row.serialNumber
[ngClass]="{'selectedRow': selectedNode && selectedNode.serialNumber === row.serialNumber}"
*matRowDef="let row; columns: displayedColumns;"
></tr>
// component.ts
// selected point is your desierd element from data source
scrollRowToView(selectedPoint) {
const row = this.rows.find(r =>
r.element.nativeElement.getAttribute('serialNumber') === selectedPoint.serialNumber);
if (row != null) {
row.element.nativeElement.scrollIntoView( {behavior: 'smooth', block: 'center', inline : 'center'});
}
}
关于angular - mat-table 以编程方式跳到特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58798449/