/// <summary> /// Applies the filter to the Engine. /// </summary> public void Apply() { if (_tableDescriptor != null && _recordFilters != null) { _tableDescriptor.RecordFilters.InitializeFrom(_recordFilters); } _recordFilters = null; }
/// <summary> /// A method that applies (All) type filtering to the column. /// </summary> /// <remarks>Resets the filter applied to that column.</remarks> public void SelectAll() { _tableDescriptor = _engine.TableDescriptor;//identity.Table.TableDescriptor; _recordFilters = new RecordFilterDescriptorCollection(); _recordFilters.InitializeFrom(_tableDescriptor.RecordFilters); var removefdc = GetFilters(_recordFilters, _identity); if (removefdc == null) { return; } foreach (var rfd in removefdc) { _recordFilters.Remove(rfd); } }
/// <summary> /// A method that applies specific item filtering to the column. /// </summary> /// <param name="index">selected index</param> public void SelectItem(int index) { var filterName = GetUniqueColumnGroupId(_identity); _tableDescriptor = _engine.TableDescriptor;//identity.Table.TableDescriptor; _recordFilters = new RecordFilterDescriptorCollection(); _recordFilters.InitializeFrom(_tableDescriptor.RecordFilters); var items = GetFilterBarChoices(_identity); ////check to see if list was shortened after index was set if (index >= items.GetLength(0)) { return; } var value = items[index]; var removefdc = GetFilters(_recordFilters, _identity); if (removefdc != null) { foreach (var rfd in removefdc) { _recordFilters.Remove(rfd); } } var newFilter = new RecordFilterDescriptor { Name = filterName, MappingName = _identity.Column.MappingName, UniqueGroupId = GetUniqueGroupId(_identity) }; newFilter.Conditions.Add(new FilterCondition(FilterCompareOperator.Equals, value)); _recordFilters.Add(newFilter); }
/// <summary> /// A method that returns filter collection applied so far to the respective column. /// </summary> /// <param name="recordFilters">Filtercollection</param> /// <param name="tableCellIdentity">StyleInfoIdentity</param> /// <returns>Collection of filters.</returns> private IEnumerable <RecordFilterDescriptor> GetFilters(RecordFilterDescriptorCollection recordFilters, GridTableCellStyleInfoIdentity tableCellIdentity) { var rfdc = recordFilters.GetRecordFilters(tableCellIdentity.Column.MappingName); if (rfdc != null) { var uniqueId = tableCellIdentity.DisplayElement.ParentGroup.UniqueGroupId; var rfdList = new ArrayList(); foreach (var rfd in rfdc) { if (rfd.CompareUniqueId(uniqueId)) { rfdList.Add(rfd); } } if (rfdList.Count > 0) { return((RecordFilterDescriptor[])rfdList.ToArray(typeof(RecordFilterDescriptor))); } } return(null); }