• DevExpress控件库----LookUpEdit控件 和 GridLookUpEdit控件使用


    DevExpress控件库----LookUpEdit控件 和 GridLookUpEdit控件使用

    一.LookUpEdit控件简单使用: 下面是使用到的基础数据

     public class Product
        {
            public int Id { get; set; }
            public string Model { get; set; }
            public string Name { get; set; }
        }
       public class Entility 
       {
           private static string GetChar(int number)
           {
               string[] array = new string[] { "A","B","C","D","E","F","G","H","I"};
               string result = array[number % 9];
               return result;
           }
           private static string GetName(int number)
           {
               string[] array = 
               {
                   "Unitch数据采集器","MS扫描枪","105SL","TSC","PH880","MS320便携式打印机","PA700","DSX800电脑","HP打印机"
               };
               string result = array[number % 9];
               return result;
           }
    
           public static List<Product> GetProductList() 
           {
               List<Product> list = new List<Product>();
               for (int i = 0; i < 200; i++)
               {
                   Product product = new Product() 
                   {
                       Id=100+i,Model=GetChar(i)+i.ToString()+"DLJ",Name=GetName(i)+i.ToString()
                   };
                   list.Add(product);
               }
               return list;
           }
           public static DataTable GetDataTable() 
           {
               DataTable dt = new DataTable();
               dt.Columns.Add("Id",typeof(System.Int32));
               dt.Columns.Add("Model", typeof(System.String));
               dt.Columns.Add("Name", typeof(System.String));
               for (int i = 0; i < 200; i++)
               {
                   DataRow dr = dt.NewRow();
                   dr["Id"] = 100 + i;
                   dr["Model"] = GetChar(i) + i.ToString() + "DLJ";
                   dr["Name"] = GetName(i) + i.ToString();
                   dt.Rows.Add(dr);
               }
               return dt;
           }
       }

    先看一下效果:

    数据绑定: 

    List<Product> list = Entility.GetProductList();
    lookUpEdit1.Properties.DataSource = list;

    添加显示的列:找到属性列表---添加要绑定的列。如果没有添加列 根据属性名称 自动生成列

     简单属性设置:

     //双击显示下拉列表
    lookUpEdit1.Properties.ShowDropDown = ShowDropDown.DoubleClick;
    lookUpEdit1.Properties.ImmediatePopup = true;//显示下拉列表
    lookUpEdit1.Properties.TextEditStyle = TextEditStyles.Standard;//允许输入
    lookUpEdit1.Properties.DropDownRows = 12;//默认显示的行
    lookUpEdit1.Properties.PopupWidth = 350;//设置宽带
    lookUpEdit1.Properties.NullText = "";//清空默认值

    二.GridLookUpEdit控件简单使用
    效果:

    数据绑定:

      List<Product> list = Entility.GetProductList();
      gridLookUpEdit1.Properties.DataSource = list;

    添加显示的数据列:并进行数据绑定   设置列的宽度

    GridLoolUpEdit 默认  是根据 DisplayMember 绑定的字段  进行模糊筛选。

    设置根据多列筛选功能: 

      private void FilterLookup(object sender)
            {
               
    
                GridLookUpEdit edit = sender as GridLookUpEdit;
                GridView gridView = edit.Properties.View as GridView;
                FieldInfo fi = gridView.GetType().GetField("extraFilter", BindingFlags.NonPublic | BindingFlags.Instance);
                BinaryOperator op1 = new BinaryOperator("Id", "%" + edit.AutoSearchText + "%", BinaryOperatorType.Like);
                BinaryOperator op2 = new BinaryOperator("Model", "%" + edit.AutoSearchText + "%", BinaryOperatorType.Like);
                BinaryOperator op3 = new BinaryOperator("Name", "%" + edit.AutoSearchText + "%", BinaryOperatorType.Like);
                string filterCondition = new GroupOperator(GroupOperatorType.Or, new CriteriaOperator[] { op1, op2,op3 }).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, DevExpress.XtraEditors.Controls.ChangingEventArgs e)
            {
                BeginInvoke(new MethodInvoker(delegate()
                {
                    FilterLookup(sender);
    
                }));
            }

    对筛选的列 显示行号

            private void gridLookUpEdit1View_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)
            {
                if (e.Info.IsRowIndicator && e.RowHandle >= 0)
                {
                    e.Info.DisplayText = (e.RowHandle + 1).ToString();
                }
            }

    一些简单的属性设置:

         //双击显示下拉列表
                gridLookUpEdit1.Properties.ShowDropDown = ShowDropDown.DoubleClick;
                gridLookUpEdit1.Properties.ImmediatePopup = true;//显示下拉列表
                gridLookUpEdit1.Properties.TextEditStyle = TextEditStyles.Standard;//允许输入
                gridLookUpEdit1.Properties.NullText = "";//清空默认值

    设置下拉列表宽度

    如果有错误的地方,欢迎同行指正!!

  • 相关阅读:
    HDU 4607 Park Visit (DP最长链)
    HDU 4607 Park Visit (DP最长链)
    POJ 2388 Who's in the Middle (快速选择算法:O(N)求数列第K大)
    POJ 2388 Who's in the Middle (快速选择算法:O(N)求数列第K大)
    HDU 4609 3-idiots (FFT-快速傅立叶变换)
    HDU 4609 3-idiots (FFT-快速傅立叶变换)
    POJ 3084 Panic Room (最小割建模)
    POJ 3084 Panic Room (最小割建模)
    POJ 1966 Cable TV Network (无向图点连通度)
    POJ 1966 Cable TV Network (无向图点连通度)
  • 原文地址:https://www.cnblogs.com/xieyong_198510/p/4710193.html
Copyright © 2020-2023  润新知