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);  

        }));

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,917评论 0 38
  • 9.media player LIBVLC_APIlibvlc_media_player_t*libvlc_med...
    hello_math阅读 2,800评论 0 1
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,776评论 0 33
  • 所谓眼前的风景往往会被忽略。我只上过一次南麂岛,而且是因为工作。也是自己从小在海边长大,对海太熟悉的缘故。总之,南...
    符号_53b9阅读 277评论 0 0
  • 冬天。把冻僵的脚放进刚拉出来的牛粪里,暖和的时候,忘了它是屎。 作为一个中国人,快乐常常被当做一种奢侈品,不快乐是...
    Morning_zhang阅读 1,048评论 5 11