Группировка больших данных в ListGrid

Я использую SmartGWT, и у меня проблема с группировкой lisgGeid, когда у меня большие данные.
но все работает нормально, когда у меня есть небольшие данные
Я установил следующие свойства сетки:

    sheetAnalysisListGrid = new ListGrid();
    sheetAnalysisListGrid.setWidth("800");
    sheetAnalysisListGrid.setHeight(365); 
    sheetAnalysisListGrid.setShowAllRecords(true);
    sheetAnalysisListGrid.setCanEdit(false);
    sheetAnalysisListGrid.setGroupByField(TahaConstants.TCO_REPORT_PARAMETER_CATEGORY);

    sheetAnalysisListGrid.setShowGroupSummary(true);

    sheetAnalysisListGrid.setShowGroupSummaryInHeader(true);
    sheetAnalysisListGrid.setFields(sheetAnalysisFields);
    sheetAnalysisListGrid.setGroupNodeStyle("listGridGroupNode");
    sheetAnalysisListGrid.setGroupIcon("TahaTCOOverview/group.png");
    sheetAnalysisListGrid.setGroupStartOpen(GroupStartOpen.ALL);


    sheetAnalysisListGrid.addGroupByCompleteHandler(new GroupByCompleteHandler() {
        public void onGroupByComplete(GroupByCompleteEvent event) {
            sheetAnalysisListGrid.setAutoFitWidthApproach(AutoFitWidthApproach.BOTH);
        }
    });

1 ответ

Решение
i added listgridName.setGroupByMaxRecords(8000);

Максимальное количество записей, к которым может применяться groupBy. Если имеется больше записей, группировка не будет доступна через контекстное меню заголовка по умолчанию, и вызовы ListGrid.groupBy будут игнорироваться.

Максимум существует, потому что группировка ListGrid выполняется в браузере, следовательно, требуется загрузка всех записей, которые соответствуют текущим критериям фильтра, прежде чем записи могут быть сгруппированы. Максимум по умолчанию представляет собой количество записей, которые безопасно загружать в устаревших браузерах, таких как Internet Explorer 8 (современные браузеры могут обрабатывать гораздо больше), а также является хорошим верхним пределом с точки зрения загрузки данных из базы данных.

Выход за пределы этого предела может привести к ошибкам "скрипт работает медленно" из устаревших браузеров (а также к высокой загрузке базы данных). Чтобы создать интерфейс для группировки, который обрабатывает произвольный объем данных, используйте TreeGrid с loadDataOnDemand с кодом группировки на стороне сервера.

Другие вопросы по тегам