2017-03-03 59 views
0

比方說,在我的分貝,名爲用戶名列,我有這個值讓 - 安德魯皮埃爾。我在創建用於從數據庫檢索該值的過濾器時遇到問題,當我輸入Andrew Jean Pierre。正如你所看到的,名字的順序是不同的,有些字符丟失了。編程過濾RadGridView

我已經試過這樣:

var operatorNameFilter = radGridView.Columns[nameof(Username)].ColumnFilterDescriptor; 
    if (string.IsNullOrEmpty(username)) 
    { 
     operatorNameFilter.Clear(); 
     return; 
    } 

    allOperatorsName = Regex.Split(username, @"\W+"); 
     foreach (var name in allOperatorsName) 
      operatorNameFilter.DistinctFilter.AddDistinctValue(name); 

     operatorNameFilter.FieldFilter.Filter1.Operator = FilterOperator.Contains; 
     operatorNameFilter.FieldFilter.Filter1.LogicalOperator = FilterCompositionLogicalOperator.And; 
     operatorNameFilter.FieldFilter.Filter1.Value = username; 

我相信最後一行已被刪除,但有或沒有,沒有發生

感謝, 安德列亞

回答

0

我找到答案經過幾次嘗試:

 private void FilterByOperatorNames(RadGridView radGridView) 
     { 
      var operatorNameFilter = radGridView.Columns[nameof(Username)].ColumnFilterDescriptor; 
      if (string.IsNullOrEmpty(username)) 
      { 
       operatorNameFilter.Clear(); 
       return; 
      } 

      var allOperatorNames = Regex.Split(username, @"\W+"); 
      var userNamesCompositeFilter = new CompositeFilterDescriptor(); 
      foreach (var name in allOperatorNames) 
      { 
       var filterDescriptor = new FilterDescriptor(nameof(Username), FilterOperator.Contains, name); 
       userNamesCompositeFilter.FilterDescriptors.Add(filterDescriptor); 
      } 
      userNamesCompositeFilter.LogicalOperator = FilterCompositionLogicalOperator.And; 
      radGridView.FilterDescriptors.Add(userNamesCompositeFilter); 
     } 

我希望能幫助別人。