如何使用 angular 将新行添加到 ag 网格的特定索引 7
How to add new row to a particular index of a ag grid using angular 7
我正在尝试将新行添加到 ag-grid 的特定索引中,但我无法添加它。当我尝试添加时,它会再次在网格中添加所有内容,并与新行一起创建副本。请帮我解决这个问题。
我正在获取所选行的索引,我想在所选行的正下方添加新行。
获取选定行索引的代码。
onRowClick(event: any): void {
this.index = event.rowIndex;
}
我在 angular-ag-grid 中调用它,如下所示:
(rowClicked)="onRowClick($event)"
我尝试在下面添加行:
addRow(){
this.lst.push( {"slNo": this.index,"id":3, "rank":1,
this.gridApi.updateRowData({
add: this.lst,
addIndex: index
});
}
这里 lst 是包含数组列表格式的所有行的对象模型,我正在将新行推送到该数组。
以及我从 onRowClick 事件中获取的索引。
当我尝试上述方法时,它复制了数组中已经存在的值以及新行。
请帮帮我!
api.updateRowData(transaction)
的实际用法只需要您将要添加的特定行传递到参数中。因此,您不应传入整个 lst
对象,因为这会导致整个对象在您的 ag-grid 中重复。
这是你应该做的:
addRow(){
// Assuming newRow is an object, such as {"slNo": this.index,"id":3, "rank":1}
this.gridApi.updateRowData({
add: newRow,
addIndex: index
});
}
官方文档有不错的选择examples供大家参考
另一种解决方案是将 javascript 与 拼接 一起使用,例如:arr.splice(targetIndex, 0, newRow).
将您的方法更改为:
addRow(){
// Assuming newRow is an object, such as {"slNo": this.index,"id":3, "rank":1};
rowData.splice(targetIndex, 0, newRow);
this.gridApi.setRowData(rowData); // optional
}
Array.splice() 方法用于在数组中添加或删除项目。
在上面的例子中,插入是通过将要删除的元素数设置为 0 来完成的。 "newRow" 将被插入到第一行的指定索引 (0) 处。例如,您还可以为第二行设置索引 = 1。可选择使用 API 中的“setRowData(rowData)”方法重新呈现视图。
我正在尝试将新行添加到 ag-grid 的特定索引中,但我无法添加它。当我尝试添加时,它会再次在网格中添加所有内容,并与新行一起创建副本。请帮我解决这个问题。
我正在获取所选行的索引,我想在所选行的正下方添加新行。
获取选定行索引的代码。
onRowClick(event: any): void {
this.index = event.rowIndex;
}
我在 angular-ag-grid 中调用它,如下所示:
(rowClicked)="onRowClick($event)"
我尝试在下面添加行:
addRow(){
this.lst.push( {"slNo": this.index,"id":3, "rank":1,
this.gridApi.updateRowData({
add: this.lst,
addIndex: index
});
}
这里 lst 是包含数组列表格式的所有行的对象模型,我正在将新行推送到该数组。 以及我从 onRowClick 事件中获取的索引。
当我尝试上述方法时,它复制了数组中已经存在的值以及新行。
请帮帮我!
api.updateRowData(transaction)
的实际用法只需要您将要添加的特定行传递到参数中。因此,您不应传入整个 lst
对象,因为这会导致整个对象在您的 ag-grid 中重复。
这是你应该做的:
addRow(){
// Assuming newRow is an object, such as {"slNo": this.index,"id":3, "rank":1}
this.gridApi.updateRowData({
add: newRow,
addIndex: index
});
}
官方文档有不错的选择examples供大家参考
另一种解决方案是将 javascript 与 拼接 一起使用,例如:arr.splice(targetIndex, 0, newRow).
将您的方法更改为:
addRow(){
// Assuming newRow is an object, such as {"slNo": this.index,"id":3, "rank":1};
rowData.splice(targetIndex, 0, newRow);
this.gridApi.setRowData(rowData); // optional
}
Array.splice() 方法用于在数组中添加或删除项目。 在上面的例子中,插入是通过将要删除的元素数设置为 0 来完成的。 "newRow" 将被插入到第一行的指定索引 (0) 处。例如,您还可以为第二行设置索引 = 1。可选择使用 API 中的“setRowData(rowData)”方法重新呈现视图。