angular 实现 agrid 边界可以拖动
时间: 2024-03-10 13:47:08 浏览: 114
如果你是想要实现 ag-grid 表格的边框可以拖动,而不是表头,可以使用 `ag-grid` 的 `onGridSizeChanged` 事件配合 `JavaScript` 实现。
1. 在 `HTML` 模板中,将 `ag-grid` 组件的 `gridReady` 事件绑定到组件中的 `onGridReady` 方法:
```html
<ag-grid-angular
#agGrid
[rowData]="rowData"
[columnDefs]="columnDefs"
class="ag-theme-alpine"
(gridReady)="onGridReady($event)"
></ag-grid-angular>
```
2. 在组件的 `onGridReady` 方法中,添加 `onGridSizeChanged` 事件的监听器:
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { AgGridAngular } from 'ag-grid-angular';
@Component({
selector: 'app-your-component',
templateUrl: './your-component.component.html',
styleUrls: ['./your-component.component.css']
})
export class YourComponent implements OnInit {
@ViewChild('agGrid') agGrid: AgGridAngular;
private gridApi;
private gridColumnApi;
ngOnInit() {}
onGridReady(params) {
this.gridApi = params.api;
this.gridColumnApi = params.columnApi;
window.addEventListener('resize', () => {
this.gridApi.sizeColumnsToFit();
this.adjustGridHeight();
});
this.gridApi.sizeColumnsToFit();
this.adjustGridHeight();
}
private adjustGridHeight() {
const gridHeight = this.gridApi.getPreferredHeight();
this.agGrid.nativeElement.style.height = `${gridHeight}px`;
}
}
```
3. 在 `adjustGridHeight` 方法中,获取表格的首选高度,并将其设置为 `ag-grid` 组件的高度。这样,当页面大小发生变化时,表格的高度也会自动调整,从而实现边界可以拖动的效果。
需要注意的是,表格的高度计算可能会受到其他组件的影响,你需要根据实际情况进行调整。
阅读全文