Бесконечная прокрутка

Обсуждение возникших проблем, предложений и ошибок UniDAC компонентов
Ответить
Akella
Сообщения: 200
Зарегистрирован: Пн 02 апр 2012 14:41

Бесконечная прокрутка

Сообщение Akella » Вт 03 ноя 2020 08:58

Доброго времени суток.
Подскажите, какие свойства и методы нужно использовать у uniQuery, чтобы задействовать функционал "бесконечной прокрутки". Т.е. автоматическая дозагрузка (получение данных с сервера) без пагинатора.

Есть есть большой набор данных в веб-приложении (фреймфорк uniGUI) и там есть у сетки (DBGrid) режим "infinite scrolling".
Так вот. Что включить/отключить в настройках компонентов uniDAC, чтобы задействовать бесконечную прокрутку?

Подозреваю, что нужно включить SmartFetch, зашел в справку, а там пусто
https://www.devart.com/unidac/docs/deva ... embers.htm

Спасибо

Stellar
Devart Team
Сообщения: 20
Зарегистрирован: Чт 07 дек 2017 14:56

Re: Бесконечная прокрутка

Сообщение Stellar » Ср 04 ноя 2020 15:09

Для получения данных из больших таблиц компоненты UniDAC имеет специальный механизм SmartFetch, который минимизирует использование памяти приложением. Когда режим SmartFetch включен, а для параметра LiveBlock установлено значение True, объем выделенной памяти соответствует количеству записей, определенных в свойстве FetchRows. Когда новые записи загружены, дополнительная память не будет выделена, и такие записи будут удалены из памяти.
Для организации быстрой навигации по огромному набору данных UniDAC в режиме SmartFetch выполняет предварительный запрос на сервер, для построения списка значений для ключевых полей. Этот список будет хранится в памяти, пока набор данных будет активным.

Код: Выделить всё

UniQuery1.SQL.Text := 'SELECT id, name FROM Table_Name';
UniQuery1.FetchRows := 100;
UniQuery1.SpecificOptions.Values['FetchAll'] := 'True';
UniQuery1.SmartFetch.Enabled := True;
UniQuery1.SmartFetch.LiveBlock := True;
UniQuery1.KeyFields := 'id';
UniQuery1.Open;

Ответить