Beispiel #1
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 #2
0
 protected virtual void UpdateDistinctValuesWithFilter()
 {
     if (this.distinctValuesWithFilter == null)
     {
         return;
     }
     this.distinctValuesWithFilter.Clear();
     this.distinctValuesWithFilter = this.GetDistinctValuesWithFilter();
 }
Beispiel #3
0
 protected virtual void UpdateDistinctValues()
 {
     if (this.distinctValues == null)
     {
         return;
     }
     this.distinctValues.Clear();
     this.distinctValues = this.GetDistinctValues();
 }
Beispiel #4
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 #5
0
 public void CreateSnapshot()
 {
     if (this.distinctValuesWithFilter == null)
     {
         return;
     }
     this.distinctValuesWithFilterSnapshot = new GridViewColumnValuesCollection();
     foreach (object obj in this.distinctValuesWithFilter)
     {
         this.distinctValuesWithFilterSnapshot.Add(obj);
     }
 }
Beispiel #6
0
        public GridViewEventResult ProcessEvent(GridViewEvent eventData)
        {
            if (eventData.Info.Id == KnownEvents.ViewChanged)
            {
                DataViewChangedEventArgs changedEventArgs = (DataViewChangedEventArgs)eventData.Arguments[0];
                switch (changedEventArgs.Action)
                {
                case ViewChangedAction.Add:
                    if (changedEventArgs.NewItems[0] is GridViewDataRowInfo)
                    {
                        this.UpdateDistinctValues();
                        this.UpdateDistinctValuesWithFilter();
                        break;
                    }
                    break;

                case ViewChangedAction.Remove:
                    if (changedEventArgs.NewItems[0] is GridViewDataRowInfo)
                    {
                        this.UpdateDistinctValues();
                        this.UpdateDistinctValuesWithFilter();
                        break;
                    }
                    break;

                case ViewChangedAction.Reset:
                    this.distinctValues           = (GridViewColumnValuesCollection)null;
                    this.distinctValuesWithFilter = (GridViewColumnValuesCollection)null;
                    break;

                case ViewChangedAction.ItemChanged:
                    if (changedEventArgs.NewItems[0] is GridViewDataRowInfo)
                    {
                        this.UpdateDistinctValues();
                        this.UpdateDistinctValuesWithFilter();
                        break;
                    }
                    break;
                }
            }
            else if (eventData.Info.Id == KnownEvents.CollectionChanged)
            {
                NotifyCollectionChangedEventArgs changedEventArgs = (NotifyCollectionChangedEventArgs)eventData.Arguments[0];
                if (changedEventArgs.Action == NotifyCollectionChangedAction.Remove && changedEventArgs.NewItems[0] == this)
                {
                    this.OwnerTemplate.MasterTemplate.SynchronizationService.RemoveListener((IGridViewEventListener)this);
                }
            }
            return((GridViewEventResult)null);
        }
Beispiel #7
0
        protected virtual RadListFilterDistinctValuesTable GetDistinctValuesTable()
        {
            RadListFilterDistinctValuesTable distinctValuesTable = new RadListFilterDistinctValuesTable();

            distinctValuesTable.FormatString = this.dataColumn.FormatString;
            distinctValuesTable.DataConversionInfoProvider = (IDataConversionInfoProvider)this.dataColumn;
            GridViewColumnValuesCollection valuesWithFilter = this.dataColumn.DistinctValuesWithFilter;

            if (valuesWithFilter == null)
            {
                return(distinctValuesTable);
            }
            GridViewComboBoxColumn dataColumn = this.dataColumn as GridViewComboBoxColumn;

            if (dataColumn != null && !string.IsNullOrEmpty(dataColumn.ValueMember))
            {
                foreach (object cellValue in valuesWithFilter)
                {
                    if (cellValue != null && cellValue != DBNull.Value)
                    {
                        object filterValue = cellValue;
                        object lookupValue = ((GridViewComboBoxColumn)this.dataColumn).GetLookupValue(cellValue);
                        if (dataColumn.FilteringMode == GridViewFilteringMode.DisplayMember)
                        {
                            filterValue = lookupValue;
                        }
                        if (lookupValue != null)
                        {
                            distinctValuesTable.Add(lookupValue.ToString(), filterValue);
                        }
                    }
                }
            }
            else
            {
                foreach (object obj in valuesWithFilter)
                {
                    distinctValuesTable.Add(obj);
                }
            }
            return(distinctValuesTable);
        }
Beispiel #8
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);
                }
            }
        }