У меня есть сетка с включенной сортировкой.В каждой строке есть дублирующаяся кнопка.При дублировании строки я хотел бы вставить новую строку чуть ниже скопированной строки.Это работает с сортировкой по умолчанию, но если вы сортируете ее по столбцу, как, например, статус, он случайным образом вставляет строку в сетку, затрудняя ее поиск.
Я заметил, что сетка иногда выполняет сортировкуво время сохранения, но до того, как он получит ответ о назначении нового идентификатора.
Я попытался добавить строку, используя updateRowData (транзакция) с addIndex, но он либо ничего не вставляет, либо игнорирует индекс.
У меня есть доступ к любым компонентным переменным из postSort, но я получаю ответ только с идентификатором после postSort.
cloneRow(item: any): void {
let newRow = JSON.parse(JSON.stringify(item.data)) as Object;
newRow.gridItemId = null;
this.index = this.api.getFocusedCell().rowIndex;
this.selectRow(newRow, ++index);
this.saveRow(newRow);
}
selectRow(newRow: Object, index: number) {
this.selectedObject = [];
this.gridItemList.splice(index, 0, newRow);
this.api.setFocusedCell(index, "ColumnName");
this.api.startEditingCell({
rowIndex: index,
colKey: "ColumnName"
});
}
saveRow(newRow: Object): void {
let objectsToSave = new Array<Object>();
objectsToSave.push(newRow);
this.CustomService.saveRow(objectsToSave)
.subscribe(
(response) => {
if (!newRow.rowId) {
newRow.rowId = response[0].rowId;
}
this.gridItemList.filter(g => g.gridItemId === response[0].gridItemId)[0] = response[0];
this.api.refreshCells();
}
postSort = function(rowNodes) {
console.log("Post Sort");
}
Ожидается: скопированная строка вставляется чуть ниже исходной строки.Фактически: скопированная строка вставляется где-то в сетке.