zoukankan      html  css  js  c++  java
  • DevExpress中的lookupedit的使用方法详解

    摘自: http://www.evget.com/zh-CN/Info/catalog/17631.html

    概述:本文详细介绍了DevExpress中的lookupedit的使用方法。

    绑定数据源:  

    1
    2
    3
    lookupedit.properties.valuemember = 实际要用的字段;   //相当于editvalue
    lookupedit.properties.displaymember =要显示的字段;    //相当于text
    lookupedit.properties.datasource = 数据源;

    判断是否选择下拉框:

    1
    2
    3
    4
    if(this.lookupedit.editvalue==null ||this.lookupedit.editvalue.tostring()=="nulltext")
    {
    //提示信息,说明未选择下拉框
    }

    清空nulltext值: 

    1
    lookupedit.properties.nulltext=null;

    设置nulltext值:

    1
    lookupedit.properties.nulltext=“请您选择”;

    使用lookupedit1的值:

    1
    2
    变量=this.lookupedit.editvalue.tostring()  //是ookupedit.properties.valuemember的值
    变量=this.lookupedit.text.trim()      //是ookupedit.properties.displaymember 的值

    特别值得注意的是,有时候我们要使用lookupedit来实现combox的一些效果,在实际的使用过程中在程序加载的时候会默认的选择第一项,它的设置是:

    1
    2
    3
    4
    5
    lookupedit.itemindex=0;   //选择第一项
     
    lookupedit.itemindex=-1; //无选项,此时显示的是nulltext值 其实这个地方只要editvalue==null,lookupedit就显示nulltext
     
    lookupedit1.editvalue=value;//自动搜索datasouse,选择与之匹配的值,没有的情况下赋值null ,value的值必须与valuemember的数据类型一致。

    在gridview中你选择一条记录,那么利用bindingsourse.current就可以获得你要选择的数据,如果是实体类就可以(object)进行强制转换,然后 进行一些其它的操作。

    但是,lookupedit在你选择一条记录的时候,bindingsourse.current的值永远是第一条记录,要想获得你选择数据源的记录,必须利用lookupedit.getdatasoursebykeyvalue(keyvalue),(object)进行强制转这样就可以了。但是你要注意的就是keyvalue必须是你数据源中的主键,否则你获取的是相同键的第一个记录。如果遇到多键值决定一条记录怎么办呢?

    这个问题dev express也有他相应的解决办法,就是用到gridlookupedit,它该是gridview和lookupedit的结合体吧,利用这个你就可以选择主键相同的记录了,利用gridlookupeditview.getdatasourcerowindex(gridlookupeditview.focusedrowhandle)就可以了。

    实例绑定方法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    //绑定lookUpEdit
             private void BoundData()
             {
                 string sql = "select daID,xm,sfzh from baseinfo";
                 DataSet ds = Archives.DataAccess.DataSql.Query(sql);
                 if (ds != null)
                 {
                     int rows = ds.Tables[0].Rows.Count;
      
                    lookUpEdit1.EditValue = "daID";
                     lookUpEdit1.Properties.ValueMember = "daID";
                     lookUpEdit1.Properties.DisplayMember = "xm";
                     lookUpEdit1.Properties.DataSource = ds.Tables[0];
      
                    //自适应宽度
                     //lookUpEdit1.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
      
                    //填充列
                     lookUpEdit1.Properties.PopulateColumns();
      
                    //设置列属性
                     //lookUpEdit1.Properties.Columns[0].Visible = false;
                     lookUpEdit1.Properties.Columns[1].Caption = "姓名";
                     lookUpEdit1.Properties.Columns[2].Caption = "身份证号";
                     lookUpEdit1.Properties.Columns[1].Width = 120;
                     lookUpEdit1.Properties.Columns[2].Width = 300;
      
                    //控制选择项的总宽度
                     lookUpEdit1.Properties.PopupWidth = 500;
      
                    //列格式设置
                     lookUpEdit1.Properties.Columns[0].FormatString = "000000";
      
                    //选择第一项
                     lookUpEdit1.ItemIndex = 0;
                 }
             }
      
            //值改变事件
             private void lookUpEdit1_EditValueChanged(object sender, EventArgs e)
             {
                 string daID = this.lookUpEdit1.EditValue.ToString(); //是ookUpEdit.Properties.ValueMember的值
                 string xm = this.lookUpEdit1.Text.Trim();
             }
  • 相关阅读:
    DataGridView拖动到TreeView
    TreeView 拖拽 增删改
    C# 代码生成器 (存储过程生成方法)
    VC++ VS2010 error LNK1123 转换到 COFF 期间失败 怎么办
    VB和VB.NET有什么区别
    VB6 如何添加自定义函数 模块 把代码放到一个模块中
    VB6 如何连接MYSQL数据库
    VB6 如何自定义代码字体和支持鼠标滚轮
    Visual Studio VS如何切换代码自动换行
    UltraEdit UE常见问题 使用必读
  • 原文地址:https://www.cnblogs.com/wuyifu/p/3370507.html
Copyright © 2011-2022 走看看