Beispiel #1
0
        protected virtual GridViewColumnValuesCollection GetDistinctValuesWithFilter()
        {
            int index = this.Index;

            this.containsBlanks = false;
            if (index >= 0)
            {
                GridViewColumnValuesCollection distinctValues = new GridViewColumnValuesCollection();
                if (this.OwnerTemplate.IsSelfReference)
                {
                    foreach (GridViewRowInfo row in this.OwnerTemplate.Rows)
                    {
                        object obj = row.Cells[index].Value;
                        if (!this.containsBlanks)
                        {
                            this.containsBlanks = obj == null || obj == DBNull.Value;
                        }
                        if (!distinctValues.Contains(obj))
                        {
                            distinctValues.Add(obj);
                        }
                    }
                }
                else
                {
                    foreach (GridViewRowInfo row in !this.OwnerTemplate.MasterTemplate.EnablePaging ? (IEnumerable <GridViewRowInfo>) this.OwnerTemplate.ChildRows : (IEnumerable <GridViewRowInfo>) this.OwnerTemplate.Rows)
                    {
                        if (!this.OwnerTemplate.MasterTemplate.EnablePaging || this.OwnerTemplate.DataView.PassesFilter(row))
                        {
                            if (row is GridViewGroupRowInfo)
                            {
                                this.GetDistinctValuesFromGroupRows(row, distinctValues);
                            }
                            else
                            {
                                object obj = row.Cells[index].Value;
                                if (!this.containsBlanks)
                                {
                                    this.containsBlanks = obj == null || obj == DBNull.Value;
                                }
                                if (!distinctValues.Contains(obj))
                                {
                                    distinctValues.Add(obj);
                                }
                            }
                        }
                    }
                }
                if (distinctValues.Count > 0)
                {
                    return(distinctValues);
                }
            }
            return((GridViewColumnValuesCollection)null);
        }
Beispiel #2
0
        protected virtual GridViewColumnValuesCollection GetDistinctValues()
        {
            int index1 = this.Index;

            if (index1 >= 0)
            {
                IList <GridViewRowInfo> gridViewRowInfoList = (IList <GridViewRowInfo>) this.OwnerTemplate.Rows;
                if (gridViewRowInfoList.Count == 0 && this.OwnerTemplate.Parent != null && this.OwnerTemplate.HierarchyLevel > 0)
                {
                    gridViewRowInfoList = (IList <GridViewRowInfo>) new List <GridViewRowInfo>();
                    GridViewInfo masterViewInfo = this.OwnerTemplate.MasterViewInfo;
                    for (int index2 = 0; index2 < this.OwnerTemplate.Parent.Rows.Count; ++index2)
                    {
                        GridViewRowInfo row = this.OwnerTemplate.Parent.Rows[index2];
                        ((List <GridViewRowInfo>)gridViewRowInfoList).AddRange((IEnumerable <GridViewRowInfo>) this.OwnerTemplate.HierarchyDataProvider.GetChildRows(row, masterViewInfo));
                    }
                }
                GridViewColumnValuesCollection valuesCollection = new GridViewColumnValuesCollection();
                foreach (GridViewRowInfo gridViewRowInfo in (IEnumerable <GridViewRowInfo>)gridViewRowInfoList)
                {
                    object obj = gridViewRowInfo.Cells[index1].Value;
                    if (!valuesCollection.Contains(obj))
                    {
                        valuesCollection.Add(obj);
                    }
                }
                if (valuesCollection.Count > 0)
                {
                    return(valuesCollection);
                }
            }
            return((GridViewColumnValuesCollection)null);
        }
Beispiel #3
0
        private void GetDistinctValuesFromGroupRows(
            GridViewRowInfo row,
            GridViewColumnValuesCollection distinctValues)
        {
            GridViewGroupRowInfo viewGroupRowInfo = row as GridViewGroupRowInfo;

            if (viewGroupRowInfo == null)
            {
                object obj = row.Cells[this.Index].Value;
                if (distinctValues.Contains(obj))
                {
                    return;
                }
                distinctValues.Add(obj);
            }
            else
            {
                foreach (GridViewRowInfo childRow in viewGroupRowInfo.ChildRows)
                {
                    this.GetDistinctValuesFromGroupRows(childRow, distinctValues);
                }
            }
        }