在ListGrid中对大数据进行分组

时间:2015-04-21 11:27:46

标签: javascript gwt smartgwt 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 个答案:

答案 0 :(得分:0)

i added listgridName.setGroupByMaxRecords(8000);

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

最大值存在是因为ListGrid分组是在浏览器中执行的,因此需要在记录可以分组之前加载与当前过滤条件匹配的所有记录。默认最大值表示在Internet Explorer 8(现代浏览器可以处理更多)等传统浏览器中可以安全加载的记录数,从数据库加载数据的角度来看也是一个很好的上限。

超出此限制可能导致脚本运行缓慢"旧版浏览器的错误(以及高数据库负载)。要构建用于处理任意数据卷的分组的接口,请使用带有loadDataOnDemand的TreeGrid和服务器端分组代码。