DevExpress中的lookupedit的使用方法詳解

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值: 

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)就可以了。

實例綁定方法

//綁定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();
         }



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章