2015-04-21 43 views
0

我正在使用SmartGWT,當我有大量數據時,我在分組lisgGeid時遇到問題。
但每一件事工作正常,當我有小數據
我已經設置以下屬性設置爲網格:一個GROUPBY可以應用的記錄在ListGrid中分組大數據

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); 
     } 
    }); 
+0

您是否嘗試過使用分頁?它對於可用性會有好處,而且對於你的頁面會更快。另外,如果你想要下載報告,你可以在另一個鏈接「Xls下載」中分離出來,並在其中加載完整的數據。您可能面臨的問題是瀏覽器中的內存不足以顯示所有記錄(可能性)。 – bgth

回答

0
i added listgridName.setGroupByMaxRecords(8000); 

最大數量。如果有更多記錄,分組將不會通過默認的標題上下文菜單提供,並且對ListGrid.groupBy的調用將被忽略。

由於ListGrid分組是在瀏覽器中執行的,因此存在最大值,因此需要在對記錄進行分組之前加載與當前過濾條件匹配的所有記錄。默認的最大值表示可以安全加載到Internet Explorer 8等傳統瀏覽器(現代瀏覽器可以處理得更多)的記錄數,並且從加載數據庫數據的角度來看也是一個很好的上限。

超出此限制可能會導致傳統瀏覽器出現「腳本運行緩慢」錯誤(以及高數據庫負載)。要爲處理任意數據量的分組構建接口,請使用帶有loadDataOnDemand的TreeGrid和服務器端分組代碼。