在Angular Mat表格中,可以使用MatCheckbox来实现列的选择和取消选择。下面是一个示例解决方法:
import { NgModule } from '@angular/core';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatTableModule } from '@angular/material/table';
@NgModule({
imports: [MatCheckboxModule, MatTableModule]
})
export class YourModule { }
import { Component } from '@angular/core';
import { MatTableDataSource } from '@angular/material/table';
@Component({
selector: 'app-your-component',
templateUrl: './your-component.component.html',
styleUrls: ['./your-component.component.css']
})
export class YourComponent {
dataSource = new MatTableDataSource(YOUR_DATA);
displayedColumns = ['select', 'column1', 'column2', 'column3'];
selectedRows = new Set();
selectAll(event) {
if (event.checked) {
this.dataSource.data.forEach(row => this.selectedRows.add(row));
} else {
this.selectedRows.clear();
}
}
selectRow(row) {
if (this.selectedRows.has(row)) {
this.selectedRows.delete(row);
} else {
this.selectedRows.add(row);
}
}
}
在上面的代码中,YOUR_DATA是你的实际数据数组。selectedRows是一个Set对象,用于存储选择的行。
当点击全选复选框时,selectAll方法会根据复选框的状态选择或取消选择所有行。
当点击每一行的复选框时,selectRow方法会根据复选框的状态选择或取消选择该行。
这样,你就可以通过selectedRows集合来获取选择的行数据。
请注意,你还需要适当地配置和使用MatTableDataSource和MatTable来正确显示和渲染表格。