/// <summary> /// Создание компонента фильтра /// </summary> /// <param name="field">Поле запроса</param> /// <param name="dataType">Тип данных</param> /// <returns>Фильтр</returns> public static QueryGridFilterBase CreateFilter(FilterColumn column) { Type type = column.Type; if (type == typeof(string)) { return new QueryGridStringFilter(); } if (type == typeof(bool) || type == typeof(bool?)) { return new QueryGridBooleanFilter(); } if (type == typeof(int) || type == typeof(int?)) { return new QueryGridIntegerFilter(); } if (type == typeof(decimal) || type == typeof(decimal?)) { return new QueryGridDecimalFilter(); } if (type == typeof(DateTime) || type == typeof(DateTime?)) { return new QueryGridDateFilter(); } if (type.IsEnum || (type.IsGenericType && type.GetGenericTypeDefinition().FullName == "System.Nullable`1" && type.GenericTypeArguments[0].IsEnum)) { return new QueryGridEnumFilter(); } return null; }
public static FilterValue CreateEmptyValue(FilterColumn column) { Type type = column.Type; if (type == typeof(string)) { return new StringFilterValue(); } if (type == typeof(bool) || type == typeof(bool?)) { return new BooleanFilterValue(); } if (type == typeof(int) || type == typeof(int?)) { return new NumberFilterValue() { DataType = typeof(int) }; } if (type == typeof(decimal) || type == typeof(decimal?)) { return new NumberFilterValue() { DataType = typeof(decimal) }; } if (type == typeof(DateTime) || type == typeof(DateTime?)) { return new DateFilterValue(); } if (type.IsEnum || (type.IsGenericType && type.GetGenericTypeDefinition().FullName == "System.Nullable`1" && type.GenericTypeArguments[0].IsEnum)) { var val = new EnumFilterValue(); Type t = type; if (type.IsGenericType && type.GetGenericTypeDefinition().FullName == "System.Nullable`1" && type.GenericTypeArguments[0].IsEnum) { t = type.GenericTypeArguments[0]; } val.HandleEnumTypeChanged(t); return val; } return null; }