protected override CriteriaOperator ConvertGridFilterToDataFilter(CriteriaOperator criteria) { string originalFindFilterText = Convert.ToString(typeof(ColumnView).InvokeMember("findFilterText", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.GetField, null, this, new object[0])); if (SimpleSearch) { if (!(string.IsNullOrEmpty(originalFindFilterText))) { typeof(ColumnView).InvokeMember("findFilterText", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.SetField, null, this, new object[] { string.Concat("\"", originalFindFilterText, "\"") }); } CriteriaOperator findCriteria = null; FindSearchParserResults _lastParserResults = null; if (!(string.IsNullOrEmpty(FindFilterText))) { _lastParserResults = (new FindSearchParser()).Parse(FindFilterText, GetFindToColumnsCollection()); typeof(ColumnView).GetField("lastParserResults", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(this, _lastParserResults); if (!IsServerMode) { _lastParserResults.AppendColumnFieldPrefixes(); } findCriteria = DxFtsContainsHelperAlt.Create(_lastParserResults, FilterCondition.Contains, IsServerMode); } typeof(ColumnView).InvokeMember("findFilterText", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.SetField, null, this, new object[] { originalFindFilterText }); return(criteria & findCriteria); } return(base.ConvertGridFilterToDataFilter(criteria)); }
public static CriteriaOperator Create(FindSearchParserResults parseResult, FilterCondition defaultCondition, bool isServerMode) { CriteriaOperator rv = null; rv = CreateFilter(parseResult.SearchTexts, parseResult.ColumnNames, defaultCondition, isServerMode); foreach (FindSearchField f in parseResult.Fields) { CriteriaOperator columnFilter = null; columnFilter = CreateFilter(f.Values, new FindColumnInfo[] { f.Column }, defaultCondition, isServerMode); rv &= columnFilter; } return(rv); }