internal bool SetFilterDesriptor(GridViewDataColumn dataColumn, FilterDescriptor descriptor) { bool isDetached = false; bool flag = false; FilterDescriptor filterDescriptor1 = this.GetFilterDescriptor(dataColumn, out isDetached); this.SuspendUpdate(); if (dataColumn.SetFilterDescriptor(descriptor)) { if (descriptor != null) { this.Cache[(GridViewColumn)dataColumn] = (object)descriptor; } flag = true; } if ((isDetached || flag) && descriptor == null) { filterDescriptor1.Operator = FilterOperator.None; if (filterDescriptor1 is CompositeFilterDescriptor) { dataColumn.FilterDescriptor = (FilterDescriptor)null; FilterDescriptor filterDescriptor2 = new FilterDescriptor(dataColumn.Name, FilterOperator.None, (object)null); this.Cache[(GridViewColumn)dataColumn] = (object)filterDescriptor2; } } this.ResumeUpdate(); return(flag); }
internal override object this[GridViewColumn column] { get { FilterDescriptor filterDescriptor = this.GetFilterDescriptor(column as GridViewDataColumn); if (filterDescriptor != null && filterDescriptor.Operator != FilterOperator.None && (filterDescriptor.Operator != FilterOperator.IsNull && filterDescriptor.Operator != FilterOperator.IsNotNull)) { return(filterDescriptor.Value); } return((object)null); } set { bool isDetached = false; GridViewDataColumn dataColumn = column as GridViewDataColumn; FilterDescriptor filterDescriptor = this.GetFilterDescriptor(dataColumn, out isDetached); if (filterDescriptor == null) { return; } FilterOperator filterOperator = filterDescriptor.Operator; bool flag = !isDetached && (value == null || object.Equals(value, (object)string.Empty) || object.Equals(value, (object)char.MinValue)); this.SuspendUpdate(); if (flag) { if (!dataColumn.SetFilterDescriptor((FilterDescriptor)null)) { this.ResumeUpdate(); return; } filterDescriptor = this.GetFilterDescriptor(dataColumn); } filterDescriptor.Operator = filterOperator; GridViewDateTimeColumn viewDateTimeColumn = dataColumn as GridViewDateTimeColumn; if (viewDateTimeColumn != null && value is DateTime) { value = (object)GridViewHelper.ClampDateTime(Convert.ToDateTime(value), viewDateTimeColumn.FilteringMode); } filterDescriptor.Value = value; if (isDetached && value != null) { this.SetFilterDesriptor(dataColumn, filterDescriptor); } this.ResumeUpdate(); } }