angular - mat-table 以编程方式跳到特定行

标签 angular mat-table angular-material-7

我正在通过有 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/

相关文章:

html - 如何在 Angular 中将表(数组)索引添加到组件中

angular - 使用 Angular Material 表对列进行分组

css - 如何更改 mat-toolbar-row 中的样式?

angular - 自定义 Angular Material mat-menu-item 以显示尺寸较小的项目(宽度和高度)

html - Angular 7 App 样式在 Safari、Opera 和 IE 中损坏,在 Chrome、Firefox、Vivaldi 和 Edge 中正常

javascript - 如何在我的 Angular 2 项目中正确包含 "require"?

javascript - 鼠标悬停在元素上时重复滚动功能

css - 如果表格太小,如何仅设置第一列来填充剩余空间或修剪其内容?

angular - 在Mat-Dialog(Angular Material CDK)上拖放无效。先前和当前索引有误

仅带有 <template> 的 Angular2 ngSwitch