欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

angular 表格内容滚动

程序员文章站 2022-06-07 22:06:54
...

使用情况:表格高度是固定的,当表格内容长度超过表格高度,内容自动开始滚动

方法一:固定表格高度,不考虑浏览器窗口的自适应

<nz-table
   [nzData]="list"
   [nzShowPagination]="false"
   [nzFrontPagination]="false"
   nzTableLayout="fixed"
   [nzScroll]="{ y: '600px' }"
   [nzTotal]="list?.length"
>
...
</nz-table>

方法二:表格高度根据浏览器窗口的大小进行自适应

Html

表格头配置:

1)为表格外的 div 容器添加 #tableContainer,用于在 ts 中获取div的长度。

2)nzScroll 配置表格的滚动属性,当 y 的值超过 tableHeight 时,表格内容自动开始滚动显示

<div class="table-container Fill" #tableContainer>
          <nz-table
            [nzData]="list"
            [nzShowPagination]="false"
            [nzFrontPagination]="false"
            [nzTotal]="list?.length + 10"
            nzTableLayout="fixed"
            [nzScroll]="{ x: '660px', y: tableHeight + 'px' }"
          >
         ...
         </nz-table>
</div>

TS 

1)tableH 为表格外 div 容器的高度

2)tableHeight 为表格高度的最大值,初始值设为400,实际显示根据 div 容器的高度进行计算

3)添加监听事件,当浏览器窗口大小发生改变后,表格的高度随之进行更新

@ViewChild('tableContainer', { static: false }) tableH: ElementRef;
tableHeight = 400;

ngOnInit () {
    this.getTableHeight();
    // 添加监听事件,当窗口长宽变化后,更新表格的长度
    window.addEventListener('resize', () => this.getTableHeight(), false);
  }

  // 获取表格的长度:表格外DIV的长度 - (表头和表格下 "+" 按钮的长度)
  getTableHeight(): void {
    this.tableHeight = this.tableH.nativeElement.offsetHeight - 110;
  }

  // 取消监听事件
  ngDestroy() {
    window.removeEventListener('resize', () => {}, false);
  }

相关标签: ABP+Angular angular