DevExpress 中 用 LookUpEdit 控件 代替 ComboBoxEdit 控件来绑定 DataTable

 

 绑定数据及定义列信息

            LookUpEdit lue = lookUpEdit1;

            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("name"));
            dt.Columns.Add(new DataColumn("code"));

            DataRow row = dt.Rows.Add();
            row["name"] = "tom";
            row["code"] = "001";

            row = dt.Rows.Add();
            row["name"] = "Jack";
            row["code"] = "002";

            lue.Properties.DataSource = dt;         // 绑定数据源
            lue.Properties.DisplayMember = "name";  // 指定显示字段
            lue.Properties.ValueMember = "code";    // 指定值字段

            LookUpColumnInfo col;                   // 定义列信息
            LookUpColumnInfo col2;

            col = new LookUpColumnInfo("code", "编码");       // 定义列信息 对应的字段名称及字段表头即Caption
            col.SortOrder = ColumnSortOrder.Descending;       // 指定列排序(貌似只能对第一列进行排序)
            // col.Visible = false;                           // 控制列是否显示(往往用在对ID或是编码等主键值进行隐藏显示)
            lue.Properties.Columns.Add(col);                  // 向 LookUpEdit 中添加列


            col2 = new LookUpColumnInfo("name", "姓名");
            //col2.SortOrder = ColumnSortOrder.Ascending;
            lue.Properties.Columns.Add(col2);

 读取选中值:

MessageBox.Show(string.Format(" {0} : {1} ",lookUpEdit1.EditValue, lookUpEdit1.Text));

设置 null值的显示:

// 清除选择:
lookUpEdit1.EditValue = null;

// Null值时显示
lookUpEdit1.Properties.NullText = "空值";

// Null值或当没有焦点时显示的Text
lookUpEdit1.Properties.NullValuePrompt = "请选择";

 

以上为自己参考网络上写的,以下为摘自网络: http://www.cnblogs.com/ruixue/archive/2013/03/19/2968793.html

DevExpress LookUpEdit和ComboBoxEdit部分用法



LookUpEdit
 
1、绑定列 (注意点:LookUpEdit1的FieldName要和绑定的列明一致)
 
    方式一:
 •LookUpEdit1.Properties.DisplayMember = "attrib2Name";
 •LookUpEdit1.Properties.ValueMember = "attrib2";
 •LookUpEdit1.Properties.DataSource = dataset1.Tables["TDefSeason"];
 
    方式二:(注意:若采用方式二绑定又赋值的话,数据源可能会变掉,此中情况下最好采用第一种方式)
 •LookUpEdit1.DataBindings.Add("EditValue", dataset1.Tables["TDefSeason"], "attrib2");
 •LookUpEdit1.Properties.DataSource = dataset1.Tables["TDefSeason"];
 
2、赋值
 •LookUpEdit1.EditValue="";
 
3、列显示为百分号:
 •    LookUpEdit1.Properties.MaskType="Numeric";
 •    LookUpEdit1.Properties.EditMask="p"; (若要显示输入不超过100%,则设为"#0.00%"
 
ComBoxEdit
 
1、comboBoxEdit1.Properties.Items[comboBoxEdit1.SelectedIndex].ToString()  使用前需要先确认 comboBoxEdit1.SelectedIndex不能等于-1,不然报错。
 
2、ComboBoxEdit也是DevExpress winform控件中经常使用的一个,我们在使用的过程中可能有时需要对ComboBoxEdit控件进行数据绑定,而ComboBoxEdit控件不像LookUpEdit控件拥有DataSource属性,可以直接绑定一个数据集。
 



1 //手工添加ComboBoxEdit的数据源 
2 comboBoxEdit1.Properties.Items.Clear();
3 
4 foreach (DataRow row in this.ColorData.Rows)
5 {
6    comboBoxEdit1.Properties.Items.Add(row["ColorCode"]);
7 } 


3、设置comboBoxEdit的下拉框只读,不允许编辑,只需设置其Properties的 TextEditStyle的值为 DisableTextEditor即可。


摘自网络: DevExpress.XtraEditors.LookUpEdit基本用法

http://hi.baidu.com/renrsh/item/463c07d9202c2ae7b3f777a4

在**_Load里

首先,从DB取得的数据:SqlDataReader myDataReader = myCommand.ExecuteReader();

然后, using(DataTable dt = new DataTable())
        {
          dt.Load(myDataReader);
          lokPurchaseSlipkbn.Properties.DataSource = dt;
          lokPurchaseSlipkbn.Properties.DisplayMember = "kbn_control_kbn";
          lokPurchaseSlipkbn.Properties.ValueMember = "l_name";

Column追加
          LookUpColumnInfoCollection colCollection1 = lokPurchaseSlipkbn.Properties.Columns;
          colCollection1.Clear();
          colCollection1.Add(new LookUpColumnInfo("l_name","",0));
          int dropDown1 = (dt == null || dt.Rows.Count > LOK_VIEW_MAXROW) ? LOK_VIEW_MAXROW : dt.Rows.Count;
          lokPurchaseSlipkbn.Properties.DropDownRows = dropDown1;
          lokPurchaseSlipkbn.Properties.BestFit();
          lokPurchaseSlipkbn.Properties.PopupWidth = 100;
        }

gridView的用法:首先要配置好view,然后用法是一样的。

Properties.NullTest = [未选择]时,LookUpEdit选择其他的值时,Properties.AllowNullInput = true; 

 

 LookUpEdit控件数据绑定例子

 

try

            {

                KPMISDataBase dc = new KPMISDataBase();

                ddlOutOrg.Properties.Columns.Clear();

                var query = from o in dc.Bas_Organization

                            join p in dc.Fin_OrgAccount

                            on o.Org_ID equals p.Org_ID

                            where p.Acct_Status == "正常"

                            select new

                            {

                                o.Org_ID,

                                o.Org_Name

                            };

                DataTable dt = query.Distinct ().ToDataTable(rec => new object[] { query });

                if (dt.Rows.Count > 0)

                {

                    DataRow dr = dt.NewRow();

                    dr["Org_ID"] = "";

                    dr["Org_Name"] = "--请选择--";

                    dt.Rows.InsertAt(dr, 0);

                    ddlOutOrg.Properties.Columns.Add(new LookUpColumnInfo("Org_Name"));

                    ddlOutOrg.Properties.ValueMember = "Org_ID";

                    ddlOutOrg.Properties.DisplayMember = "Org_Name";

                    ddlOutOrg.Properties.DataSource = dt;

                    ddlOutOrg.EditValue = dt.Rows[0]["Org_ID"];

                }

                else

                {

                    ddlOutOrg.Properties.DataSource = null;

                    ddlOutOrg.Properties.NullText = "--没有数据--";

                }

            }

            catch (Exception ex)

            {

                MsgBox.ErrShow(ex.Message);

            }

 

dev 控件 lookupedit 设置选项值
 使用lookupedit1的值:
          变量=this.lookupedit.editvalue.tostring()  //是ookupedit.properties.valuemember的值
          变量=this.lookupedit.text.trim()      //是ookupedit.properties.displaymember 的值  
        特别值得注意的是,有时候我们要使用lookupedit来实现combox的一些效果,在实际的使用过程中在程序加载的时候会默认的选择第一项,它的设置是:
       lookupedit.itemindex=0//选择第一项
       lookupedit.itemindex=-1//无选项,此时显示的是nulltext值 其实这个地方只要editvalue==null,lookupedit就显示nulltext
       lookupedit1.editvalue=value;//自动搜索datasouse,选择与之匹配的值,没有的情况下赋值null ,value的值必须与valuemember的数据类型一致。

 

 

ComboBoxEdit数据绑定 


<整理:冰河渔者 2009-01-27>

ComboBoxEdit也是DevExpress winform控件中经常使用的一个,我们在使用的过程中可能有时需要对ComboBoxEdit控件进行数据绑定,而ComboBoxEdit控件不像LookUpEdit控件拥有DataSource属性,可以直接绑定一个数据集。
下面我们使用 ComboBoxEdit的comboBoxEdit1.Properties.Items.Add(object item)方法来实现数据绑定.

1.先用GetAreaDataTable方法返回一个DataTable,代码如下:
public static DataTable GetAreaDataTable()
        {
            string sqlStr = "select BMMC from usiCLB where BMLID=3";
            DataBase db = new DataBase();
            DataTable dt = db.GetDataTable(sqlStr);
            return dt;
        }

2.然后将数据循环添加到ComboBoxEdit中,代码如下:
private void LoadComboBoxEdit()
        {
            this.comboBoxEdit1.Properties.NullText = "请选择...";
            DataTable dt = UserInfo.GetAreaDataTable();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                comboBoxEdit1.Properties.Items.Add(dt.Rows[i]["BMMC"].ToString());
            }
        }

 

 

允许输入自定义值 

LookupEditor1.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard; 

 

 

 

你可能感兴趣的:(DevExpress)