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