在 ListGrid 中对大数据进行分组

Grouping large data in the 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);
        }
    });
i added listgridName.setGroupByMaxRecords(8000);

可以应用 groupBy 的最大记录数。如果有更多记录,将无法通过默认的 header 上下文菜单进行分组,并且将忽略对 ListGrid.groupBy 的调用。

存在最大值是因为执行了 ListGrid 分组 in-browser,因此需要加载所有符合当前筛选条件的记录,然后才能对记录进行分组。默认最大值表示在 Internet Explorer 8 等传统浏览器中可以安全加载的记录数(现代浏览器可以处理更多),并且从从数据库加载数据的角度来看也是一个很好的上限。

超出此限制可能会导致旧版浏览器出现 "script running slowly" 错误(以及高数据库负载)。要构建处理任意数据量的分组接口,请使用带有 loadDataOnDemand 的 TreeGrid 和 server-side 分组代码。