Ag-Grid предлагает метод ensureIndexVisible(index, 'middle'); С помощью этого метода легко перейти к выбранному индексу. Но как мне получить от пользователя последний известный индекс позиции прокрутки?
Пример: У нас есть таблица с 600 строками. Пользователь листает — происходит обновление. Таблица немного изменилась. Теперь у меня такое поведение, что таблица прокручивается вверх. Теперь пользователь должен снова прокрутить до своей последней позиции.
Я хотел бы перенаправить пользователя на его последнюю позицию прокрутки: ensureIndexVidisble(USERS_LAST_KNOWN_SCROLLING_POSITION, 'middle');
В дополнение к информации: пользователь не работает в таблице. Поэтому я не могу сохранить его последний клик по строке.
Как я могу этого добиться?





В типичной манере AG они скрывают эту важную информацию в своих документах:
Method 3 - Delta Row Data The delta method is using the row data method above but having the property deltaRowDataMode=true.
When deltaRowDataMode is on, the grid will compare the new row data with the current row data and create a transaction object for you. The grid then executes the change as an update transaction, keeping all of the grids selections, filters etc.
Use this if you want to manage the data outside of the grid (eg in a Redux store) and then let the grid work out what changes are needed to keep the grid's version of the data up to date.
https://www.ag-grid.com/javascript-grid-data-update/#массовое обновление
На мой взгляд, это должна быть настройка, которую вы всегда должны использовать, если ваши строки имеют уникальный идентификатор (я надеюсь, что это так, это хорошая практика). Установите для deltaRowDataMode значение true и используйте getRowNodeId, чтобы указать уникальный идентификатор строки.
После этого ваша сетка будет обновляться намного эффективнее (обновляя только то, что необходимо), и она не будет прыгать наверх, когда это произойдет, поскольку она не воссоздает каждую строку и ячейку в сетке при обновлении.
На всякий случай вы также можете добавить опцию suppressScrollOnNewData, хотя я не уверен, что она нужна, если вы делаете вышеописанное.
Хороший! Это сработало. deltaRowDataMode устарел, и immutableData можно добавить
Спасибо большое, чтобы уделить немного времени всем, вот что вам нужно передать в свойство [gridOptions]. Пока ваши данные имеют уникальный идентификатор, вы настроены.
// gridOptions
{
...,
deltaRowDataMode: true,
getRowNodeId: function (data) {
return data.id;
},
},
Ты бог среди мужчин... Я назову в твою честь 10 детей