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); }
protected virtual void UpdateDistinctValuesWithFilter() { if (this.distinctValuesWithFilter == null) { return; } this.distinctValuesWithFilter.Clear(); this.distinctValuesWithFilter = this.GetDistinctValuesWithFilter(); }
protected virtual void UpdateDistinctValues() { if (this.distinctValues == null) { return; } this.distinctValues.Clear(); this.distinctValues = this.GetDistinctValues(); }
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); }
public void CreateSnapshot() { if (this.distinctValuesWithFilter == null) { return; } this.distinctValuesWithFilterSnapshot = new GridViewColumnValuesCollection(); foreach (object obj in this.distinctValuesWithFilter) { this.distinctValuesWithFilterSnapshot.Add(obj); } }
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); }
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); }
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); } } }