示例#1
0
        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();
        }
示例#2
0
        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();
        }
示例#3
0
 public static void ClearAllFilters(this GridView gv)
 {
     gv.ClearColumnsFilter();
     gv.ApplyColumnsFilter();
     gv.MoveFirst();
 }
示例#4
0
        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();
        }
示例#5
0
        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();
        }
示例#6
0
        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();
        }