public static void ClearFilter(this GridView gv, string propertyName) { var Criteria = gv.GetCriteria() == null ? new List<CriteriaOperator>() : gv.GetCriteria().ToList(); var ActiveCriteria = new GroupOperator(Criteria.ToArray()); if (ReferenceEquals(ActiveCriteria, null)) return; gv.ClearColumnsFilter(); gv.ActiveFilterCriteria = ActiveCriteria.ClearFilter(propertyName); gv.ApplyColumnsFilter(); }
public static void ClearFilter(this GridView gv, params string[] OperandNames) { var Criteria = gv.GetCriteria() == null ? new List<CriteriaOperator>() : gv.GetCriteria().ToList(); gv.ClearColumnsFilter(); if (Criteria.Count == 0) return; else { var grps = Criteria.OfType<GroupOperator>() .Where(g => g.Operands.Count() == OperandNames.Count() && g.Operands.All(i => OperandNames.Any(o => i.IsNamed(o))) ) .ToArray(); Criteria.RemoveAll(o => grps.Contains(o)); } gv.ActiveFilterCriteria = new GroupOperator(Criteria.ToArray()); gv.ApplyColumnsFilter(); gv.MoveFirst(); }
public static void ClearAllFilters(this GridView gv) { gv.ClearColumnsFilter(); gv.ApplyColumnsFilter(); gv.MoveFirst(); }
public static void SetGroupFilter(this GridView gv, GroupOperatorType type, params BinaryOperator[] valuePairs) { string[] groupPropertyNames = valuePairs .Where(o => !ReferenceEquals(o,null)) .Select(o => (o.LeftOperand as OperandProperty).PropertyName) .ToArray(); var gos = FindGroupFilter(gv, type, groupPropertyNames); if (gos == null) { SetFilter(gv, new GroupOperator(type, valuePairs .Where(o => !ReferenceEquals(o, null)) .ToArray() )); return; } else { foreach (var go in gos) { var matches = from g in go.Operands.OfType<BinaryOperator>() join v in valuePairs on (g.LeftOperand as OperandProperty).PropertyName equals (v.LeftOperand as OperandProperty).PropertyName where g.OperatorType.Equals(v.OperatorType) select new { Left = g, Right = v }; if (matches.Count() == valuePairs.Count()) foreach (var p in matches) p.Left.RightOperand = p.Right.RightOperand; } } gv.ApplyColumnsFilter(); }
public static void SetFilter(this GridView gv, CriteriaOperator item) { var Criteria = gv.GetCriteria() == null ? new List<CriteriaOperator>() : gv.GetCriteria().ToList(); gv.ClearColumnsFilter(); if (Criteria.Count == 0) Criteria.Add(item); else { switch (item.GetType().Name) { case "GroupOperator": { var grpi = item as GroupOperator; var itms = grpi.Operands.ToArray(); var grps = Criteria.OfType<GroupOperator>() .Where(g => g.Operands.Count() == itms.Count() && g.Operands.All(i => itms.Any(o => i.IsNamed(o))) ) .ToArray(); Criteria.RemoveAll(o => grps.Contains(o)); Criteria.Add(item); } break; case "InOperator": { var inoi = item as InOperator; Criteria.RemoveAll(o => o.IsNamed(inoi.LeftOperand)); Criteria.Add(item); } break; case "BinaryOperator": { var bini = item as BinaryOperator; Criteria.RemoveAll(o => o.IsNamed(bini.LeftOperand)); Criteria.Add(item); } break; } } gv.ActiveFilterCriteria = new GroupOperator(Criteria.ToArray()); gv.ApplyColumnsFilter(); gv.MoveFirst(); }
public static void ClearGroupFilter(this GridView gv, GroupOperatorType type, params string[] groupPropertyNames) { var cos = FindGroupFilter(gv, type, groupPropertyNames); if (ReferenceEquals(cos, null)) return; if (cos.Contains(gv.ActiveFilterCriteria as GroupOperator)) gv.ActiveFilterCriteria = null; else { var Criteria = gv.GetCriteria(); foreach (var co in cos.ToArray()) Criteria.Remove(co); } gv.ApplyColumnsFilter(); }