public void GetDataRowCountAdvanced(GridViewCustomBindingGetDataRowCountArgs e) { int rowCount; if (GridViewCustomBindingSummaryCache.TryGetCount(e.FilterExpression, out rowCount)) { e.DataRowCount = rowCount; } else { e.DataRowCount = Model.ApplyFilter(e.FilterExpression).Count(); } }
public void GetSummaryValuesAdvanced(GridViewCustomBindingGetSummaryValuesArgs e) { var query = Model .ApplyFilter(e.FilterExpression) .ApplyFilter(e.GroupInfoList); var summaryValues = query.CalculateSummary(e.SummaryItems); e.Data = summaryValues; var countSummaryItem = e.SummaryItems.FirstOrDefault(i => i.SummaryType == SummaryItemType.Count); if (e.GroupInfoList.Count == 0 && countSummaryItem != null) { var itemIndex = e.SummaryItems.IndexOf(countSummaryItem); var count = summaryValues[itemIndex] != null?Convert.ToInt32(summaryValues[itemIndex]) : 0; GridViewCustomBindingSummaryCache.SaveCount(e.FilterExpression, count); } }