Таблица динамической загрузки SAPUI5 / UI5

avatar
Tobias Kuess
23 октября 2014 в 15:57
10627
1
2

Я хочу отображать огромный набор данных в компоненте SAPUI5-Table. Я использовал эти таблицы данных с динамической загрузкой, что означает, что изначально в таблицу загружалось ~ 50 записей. После того, как пользователь прокрутил страницу достаточно глубоко, в таблицу был загружен следующий набор из 50 записей. Таким образом, мне удалось отобразить таблицу из более чем 160 000 записей без каких-либо проблем с производительностью.

Теперь мне нужно сделать то же самое с SAPUI5-Table. Я уже реализовал серверную часть, сервис OData готов к использованию. Я уже реализовал клиентскую часть, но без этой динамической загрузки. Страница всегда пытается загрузить все записи из базы данных.

Как я могу этого добиться? Есть ли готовый способ реализовать это? Я знаю, что службу OData можно вызывать с различными параметрами, которые определяют набор данных, который она будет доставить, но я не знаю, как сделать таблицу для этих вызовов при прокрутке?

Источник
sirion
23 октября 2014 в 18:33
1

Вы пробовали sap.ui.table.Table или только sap.m.Table?

Tim Gerlach
24 октября 2014 в 06:26
3

Если вы используете sap.m.Table, вы можете взглянуть на свойства growing здесь. При использовании sap.ui.table.Table свойство threshold должно быть правильным, описанным здесь. Оба они прекрасно работают, привязанные к модели OData .

Tobias Kuess
24 октября 2014 в 08:28
0

Хорошо, большое спасибо!

dotchuZ
24 октября 2014 в 14:24
0

о параметрах вызова службы odata: вы можете добавить несколько фильтров (msdn.microsoft.com/en-us/library/hh169248(v=nav.71).aspx) к вашему oData-URL- Вызов. Если бы мне пришлось реализовать это, я бы использовал Paginator класса sap.ui.table.Table и ловушку «при щелчке на следующей странице paginator». Я повторно привязываю модель, показывающую только текущий набор данных -> так что ваша модель содержит только текущий объем данных, видимых на одной странице пагинатора ... ваш интерфейс остается с хорошей производительностью (вместо того, чтобы с течением времени отправлять все больше и больше данных)

Ответы (1)

avatar
Tim Gerlach
26 октября 2014 в 18:36
4

Обычно таблица, привязанная к модели OData, делает большую часть этого за вас.

Если вы используете sap.m.Table, вы можете взглянуть на growing свойства здесь.

Пример использования разбиения на страницы с sap.m.Table можно найти в Исследованном приложении в разделе List.

Используя sap.ui.table.Table, свойство threshold управляет размером выборки и описано здесь. Дополнительно вы можете выбрать navigationMode. Это может быть пагинатор или полоса прокрутки.

Очень простой пример для sap.ui.table.Table выглядит так:

var oModel = new sap.ui.model.odata.ODataModel("<yourURL>", true);
var oTable = new sap.ui.table.Table({
          columns : [], //set up columns as usual
          threshold : 50 //your fetch size here
});
oTable.setModel(oModel).bindRows("/<yourEntity>");