GridLookUpEdit 多列 篩選 過濾

GridLookUpEdit  默認只按displayValue 的值進行自動匹配,

以下通過自定義可以實現多列自動匹配

Code和name 是列名。

 

void gridLookUpEdit1_Popup(object sender, EventArgs e)
      {
          FilterLookup(sender);
 
      }
 
      private  void FilterLookup(object sender) {
          Text += " ! ";
          GridLookUpEdit edit = sender as GridLookUpEdit;
          GridView gridView = edit.Properties.View as GridView;
          FieldInfo fi = gridView.GetType().GetField("extraFilter", BindingFlags.NonPublic | BindingFlags.Instance);
          Text = edit.AutoSearchText;
          BinaryOperator op1 = new BinaryOperator("Code", edit.AutoSearchText + "%", BinaryOperatorType.Like);
          BinaryOperator op2 = new BinaryOperator("Name", edit.AutoSearchText + "%", BinaryOperatorType.Like);
          string filterCondition = new GroupOperator(GroupOperatorType.Or, new CriteriaOperator[] { op1, op2 }).ToString();
          fi.SetValue(gridView, filterCondition);
 
          MethodInfo mi = gridView.GetType().GetMethod("ApplyColumnsFilterEx", BindingFlags.NonPublic | BindingFlags.Instance);
          mi.Invoke(gridView, null);
      }
 
 
      private void gridLookUpEdit1_EditValueChanging(object sender, ChangingEventArgs e) {
          this.BeginInvoke(new System.Windows.Forms.MethodInvoker(delegate{
              FilterLookup(sender);
          }));
      }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章