Beispiel #1
0
        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);
        }
Beispiel #2
0
        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
                    });
                }
            }
        }