Я использую ag-grid в angular для приложения операции CRUD. Когда я создаю новый элемент, он будет обновляться в сетке, но после обновления полоса прокрутки элемента должна прокручиваться до позиции нового элемента, и эта строка нового элемента должна быть выделена.
Посоветуйте эксперта пожалуйста?
HTML
<ag-grid-angular style = "width: 100%; height: 100%;" class = "ag-theme-balham" [defaultColDef] = "defaultColDef"
[columnDefs] = "columnDefs" [rowSelection] = "rowSelection" [rowData] = "rowData" [suppressMenuHide] = "true" [rowDragManaged] = "true"
[frameworkComponents] = "frameworkComponents" (selectionChanged) = "onSelectionChanged()"
(rowClicked)='onRowClicked($event)' (gridReady) = "onGridReady($event)" [gridOptions] = "gridOptions">
</ag-grid-angular>
ТС
ngAfterViewInit(): void {
this.gridOptions.api.setColumnDefs([
{
headerName: "",
field: "markedAsFavorite",
minWidth: 50,
maxWidth: 50,
headerComponentParams: { menuIcon: "fa-star" },
cellRendererFramework: DisciplinesCellComponent,
cellRendererParams: {
ngTemplate: this.greetCell
}
},
{
headerName: "Disciplines",
field: "name", valueGetter: (params) => params.data.name.en,
},
{
headerName: "Market",
field: "market", valueGetter: (params) => params.data.markets.name,
},
{
headerName: "Description",
field: "description", valueGetter: (params) => params.data.description.en
}
]);
}
Код выложен. Ищете, является ли это какой-либо опцией по умолчанию в ag-grid или нам нужно создать собственный компонент?
Для этого вы можете использовать RowDataTransaction и sureIndexVisible, предоставленные в ag-grid.
onAddNewRow(data: any) {
if (this.gridOptions && this.gridOptions.api) {
const addedRow = this.gridOptions.api.updateRowData({
add: [data]
});
addedRow.add[0].setSelected(true);
this.gridOptions.api.ensureIndexVisible(addedRow.add[0].rowIndex, 'bottom');
}
}
Здесь updateRowDate вернет объект со структурой
interface RowDataTransaction {
// Row Nodes added
add: RowNode[];
// Row Nodes removed
remove: RowNode[];
// Row Nodes updated
update: RowNode[];
}
Поскольку вы добавляете одну строку, вы можете получить к ней доступ из элемента с индексом 0. Передав индекс только что добавленной строки методу sureIndexVisible, вы можете прокрутить вниз до этой конкретной строки.
Спасибо. Он работает нормально, но всегда добавляется в нижнюю часть сетки без порядка сортировки. Я хотел бы добавить в порядке сортировки. Является ли это возможным?
Можете показать свой попробовать / пробовал код?