DataGrid MULTI Shift selecet

Есть dataGrid с selectionMode="MULTI"

        <dataGrid id="testEntitiesTable"
                  width="100%"
                  dataContainer="testEntitiesDc"
                  selectionMode="MULTI">

В таблицу загружено 500 записей. Для примера я в экране их создаю.
Если попробовать выбрать все записи через Shift, кликаем на первую запись в таблице пролистываем вниз и через Shift кликаем по последней, то по итогу выбираются не все.

  1. по кнопке возвращается ток 135 записей

image

  1. в самой таблице если прокрутить наверх, то записи перестают быть выбраны

image

версия jmix 1.7.

Можете подсказать workaround?

jmix-test.zip (72.8 КБ)

Добрый день.

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

Решений тут два:

  1. использовать selectionMode="MULTI_CHECK"
  2. Или реализовывать действие по принципу excel_export, т.е. когда при его выполнении дается выбор с какими данными делать операцию, например “все”, “выделенные”, “текущая страница”.

С уважением,
Глеб