2014-05-21 88 views
1

我有一個radgrid,需要多個級別的分組,隨處可見聚合。這些聚合中的一些是定製聚合,這是我必須做的第一個定製聚合。RadGrid自定義聚合:我在哪裏?

我看到OnCustomAggregate事件觸發了每個自定義聚合:對於層次結構中任何分組中的每個自定義聚合列以及網格的「總計」頁腳。

我的問題:我如何知道,在我的CustomAggregate事件處理程序中,網格要求什麼組聚合?例如,如果我的數據按國家分組,然後按州分組,那麼我如何知道CustomAggregate的當前調用是針對「巴西」,「加利福尼亞」還是「整個網格中的總計」?

今天我的谷歌搜索似乎讓我失望。

謝謝。

回答

0

嗯,我終於找到了一個應該讓你開始的示例項目。這個link有一個完整的示例項目,但是我附加了下面的自定義聚合處理代碼片段。

protected void RadGrid1_CustomAggregate(object sender, GridCustomAggregateEventArgs e) 
    { 
     if (e.Item is GridGroupFooterItem) 
     { 
      GridGroupFooterItem footer = e.Item as GridGroupFooterItem; 
      GridItem[] groups = RadGrid1.MasterTableView.GetItems(GridItemType.GroupHeader); 
      foreach (GridGroupHeaderItem group in groups) 
      { 
       if (group.GroupIndex == footer.GroupIndex) 
       { 
        int count = 0; 
        e.Result = Calculate(group, count); 
       } 
      } 
     } 
     if (e.Item is GridFooterItem) 
     { 
      e.Result = 5; 
     } 
    } 
+0

這很有幫助,謝謝。 我從GroupHeaderItem或GroupFooterItem看不到一個很好的方法,即如何確定組的選擇標準。我將一併解析group.DataCell.Text標籤,直到找到更好的東西。 –

+0

您可以將組信息添加到單個項目上的數據鍵嗎?我假設一旦你有了正確的組頭,你應該可以輕鬆地抓住組內的第一個項目...... –