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; 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM