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