Установка количества прокрутки вручную на виртуально-виртуализированной таблице (мультисетка) - PullRequest
0 голосов
/ 24 февраля 2020

Мы используем виртуально-виртуализированную таблицу в нашем приложении. Это многосетка. Предположим, что таблица имеет 10000 строк, и таблица в настоящее время прокручивается до 5000-й строки. Что мы хотим, нажав на кнопку, таблица должна перейти к первой строке (сумма прокрутки должна быть 0)

Существуют такие реквизиты, как scrollToRow или функции scrollToPosition или scrollToCell из Сетка , но они помогают вам прокрутить вниз, например, вы находитесь на 1.row и, используя их, вы можете установить прокрутку сумма до указанного значения и перейти, например, к 100.row. Но вы не можете go назад, я имею в виду прокрутку до первого ряда, когда в настоящее время мы находимся на 200.

Я нашел темп. решение путем вызова:

scrollToTop = () => {
    setTimeout(function() {
        this.bodyGrid.bottomRightGrid.handleScrollEvent({scrollTop: 0});
    }, 100);
}

Но это работает только при вызове с setTimeout, который выглядит не очень хорошо.

Я не мог найти другой способ изменить количество прокрутки вручную. Мой сценарий: пользователь выбирает 1000 строк и прокручивает их до 800.row. Затем пользователь нажимает кнопку, и он выбирает несколько совершенно новых 100 строк, например, когда таблица перерисовывается (источник данных обновляется), она продолжает прокручивать в старой позиции, даже если весь источник данных заменяется новым. Я хочу, чтобы позиция прокрутки начиналась с первого ряда. Но таблица запоминает старую позицию прокрутки в строке 800, но в настоящее время у нас есть только 100 строк, поэтому она прокручивает очень ограниченную позицию и указывает на неправильную позицию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...