angular - 如何在角度6中选择和取消选择行
问题描述
我想从选定的行中获取值并将其存储在一个数组中。当我取消选择一行时,我想将其从结果数组中删除。但是根据我的代码,我点击了多少次行值中的文件名多次添加到我的结果数组(selectedRows)中。我的代码是:
HTML:
<ag-grid-angular #grid
style="width : 603px; height:250px;" class="ag-theme-balham"
[rowData]="searchResults" [columnDefs]="columnDefs" [rowSelection]="selectionMode"
[rowMultiSelectWithClick] = true
(rowClicked)="onRowClicked($event)"
>
</ag-grid-angular>
组件.ts:
export class ShowFilesComponent implements OnInit {
searchResults : Array<String>;
private seletectedRows :Array<String>;
columnDefs = [
{headerName:"S No", valueGetter: (args) => this.getIndexValue(),checkboxSelection : true,headerCheckboxSelection: true,
headerCheckboxSelectionFilteredOnly: true,cellRenderer: 'selectedClient'},
{headerName : 'File Name', field:'fileName', sortable:true},
{headerName : 'word count', field:'wordCount', sortable:true}
]
constructor(private http: HttpClient,private r : Router, private s : FileListService) {
this.http.get(this.path).subscribe(
(data: any) => {
this.searchResults = data;
console.log(this.searchResults);
},
error => console.log(error)
);
}
}
ngOnInit() {}
onRowClicked(event){
this.seletectedRows.push(event.node.data.fileName);
console.log(this.seletectedRows);
}
}
解决方案
向网格注册一个selectionChanged
处理程序,并在您的处理程序中使用网格 api 的 getSelectedNodes()
方法。
<ag-grid-angular #grid
[rowData]="searchResults" [columnDefs]="columnDefs" [rowSelection]="selectionMode"
[rowMultiSelectWithClick]=true
(selectionChanged)="onSelectionChanged($event)" >
</ag-grid-angular>
事件对象将具有对网格 api 的引用,您可以使用它来获取选定的行...
onSelectionChanged(event: AgGridEvent) {
const nodes = event.api.getSelectedNodes();
// now do something with them....
}
请注意,您不需要自己将节点存储在数组中 - 只需使用 ag-grid 的副本,该副本将为您保持最新,然后您可以使用 Array.map() 获取任何您想要的数组从节点的数据。
推荐阅读
- scala - 测试 Akka-http 并出现错误:没有类型的隐式参数:Emptiness[Seq[Rejection]]
- angular - 如何使侧导航的图标响应并与我的侧导航的宽度完全匹配?
- python - 序列项 0:预期的 str 实例,找到 bool (Odoo 14)
- python - send_message 不为 pytelegrambotapi 发送消息
- python - 如何将文件作为表单字段输入而不将其定义为 Django 中的模型?
- reactjs - MS Teams 选项卡在部署后不工作但在开发模式下工作
- javascript - 将 HTML 表单下载为 PDF 文件
- javascript - 根据 Bootstrap 中轮播的图像更改显示的文本
- node.js - SockitIO 不断被 cors 政策阻止
- java - 求 List 相同位置的每个列表项的平均值
- >