public static PredefinedFilterCollection GetPredefinedFilters(MediaType mediaType, string fieldName) { string key = GetFilterKey(mediaType, fieldName); if (PredefinedFilterCache.ContainsKey(key)) { return(PredefinedFilterCache[key]); } PredefinedFilterCollection predefinedFilters = null; IEnumerable <string> uniqueValues = GetUniqueValues(mediaType, fieldName); if (uniqueValues != null) { predefinedFilters = new PredefinedFilterCollection(); PredefinedFilterCache.Add(key, predefinedFilters); foreach (string value in uniqueValues) { PredefinedFilter predefinedFilter = new PredefinedFilter { Name = value }; predefinedFilter.Filter = CriteriaOperator.Parse(String.Format("Contains([{0}], '{1}')", fieldName, value.Replace("'", "''"))); predefinedFilters.Add(predefinedFilter); } } return(predefinedFilters); }
private void AssociatedObject_ShowFilterPopup(object sender, FilterPopupEventArgs e) { PredefinedFilterCollection predefinedFilters = FilterHelper.GetPredefinedFilters(MediaType, e.Column.FieldName); if (predefinedFilters != null) { e.ExcelColumnFilterSettings.FilterItems.Clear(); foreach (PredefinedFilter predefinedFilter in predefinedFilters) { e.ExcelColumnFilterSettings.FilterItems.Add(new CustomComboBoxItem { EditValue = predefinedFilter.Filter, DisplayValue = predefinedFilter.Name }); } } }