ag-grid: «Как прокрутить до последней известной позиции»? - PullRequest
0 голосов
/ 17 апреля 2019

Ag-Grid предлагает метод ensureIndexVisible(index, 'middle');. С помощью этого метода легко перейти к выбранному индексу.Но как мне получить последний известный индекс позиции прокрутки от пользователя?

Пример: у нас есть таблица с 600 строками.Пользователь прокручивает - происходит обновление.Таблица немного изменилась.Теперь у меня такое поведение, что таблица прокручивается наверх.Теперь пользователь должен снова прокрутить до последней позиции.

Я бы хотел перенаправить пользователя на последнюю позицию прокрутки: ensureIndexVidisble(USERS_LAST_KNOWN_SCROLLING_POSITION, 'middle');

В дополнение к информации: пользователь не работает в таблице.Поэтому я не могу сохранить его последний щелчок по строке.

Как мне этого добиться?

1 Ответ

2 голосов
/ 17 апреля 2019

В типичной манере АГ они скрывают эту важную информацию в своих документах:

Метод 3 - Дельта-строка данных Дельта-метод использует данные строки метод выше, но со свойством deltaRowDataMode = true.

Когда deltaRowDataMode включен, сетка будет сравнивать новые данные строки с текущими данными строки и создайте объект транзакции для вас. Затем grid выполняет изменение как транзакцию обновления, сохраняя все выборки сеток, фильтры и т. д.

Используйте это, если вы хотите управлять данными за пределами сетки (например, в Redux store), а затем пусть решает, какие изменения необходимы для обновлять версию данных в сетке.

https://www.ag -grid.com / JavaScript-сетки данных обновление / # насыпной-обновление

По моему мнению, это должна быть настройка, которую вы всегда используете, если ваши строки имеют уникальный идентификатор (я надеюсь, что они есть, это хорошая практика). Установите deltaRowDataMode в true и используйте getRowNodeId, чтобы указать уникальный идентификатор для строки.

После этого ваша сетка будет обновляться намного эффективнее (только обновляя то, что нужно), и она не будет переходить наверх, когда это происходит, поскольку не воссоздает каждую строку и ячейку в сетке при обновлении.

Для правильной меры вы также можете добавить опцию suppressScrollOnNewData, хотя я не уверен, нужна ли она вам, если вы сделаете выше.

...