1

我正在通过角材料的垫表组件实现表格。当我的代码中的某些事件触发时,我想跳到特定的行。

到目前为止,我尝试使用 (focus)on row 和 virtual scrolling 事件。

但我认为我错过了一些东西,它应该比这更简单。

4

1 回答 1

1

我发现了这个问题,我做了一些改变,这将适用于我的问题。
简而言之 -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'});
 }

}

于 2019-11-18T12:03:50.547 回答