设置列表DevExpress.XtraEditors.LookUpEdit数据源
为DevExpress.XtraEditors.LookUpEdit控件设置数据源有两种表现形式:
如上图所示:一个查询窗口,要求在首次显示窗口时对LookUpEdit系列控件设置数据源,在点击〈清除〉按钮时,LookUpEdit的editTest设置为空。
其中:A系列LookUpEdit控件被绑定到多列数据,在用户更改选择项时,要将所选项中的一列值赋值到右边的文本框。
B系列LookUpEdit控件被绑定到单列或两列数据源。
具体实现:
I:
1: public frmTestReport_select()
2: {
3: InitializeComponent();
4:
5: this.lueTestBillType.EditValueChanged += delegate { SetDataBindTestBillTypeToLookUpEdit(); };
6: this.lueProductCategory.EditValueChanged += delegate { SetDataBindProductCategoryToLookUpEdit(); };
7: this.lueProductColor.EditValueChanged += delegate { SetDataBindProductColorToLookUpEdit(); };
8: this.lueProductUnit.EditValueChanged += delegate { SetDataBindProductUnitToLookUpEdit(); };
9: this.lueTestPerson.EditValueChanged += delegate { SetDataBindTestPersonToLookUpEdit(); };
10:
11:
12: this.SetLoadData();
13:
14: this.lueTestBillType.EditValue = "";//原本是NULL,这里改为“”,是为了触发事件,在第一次加载时加载列表数据源
15: }
II:
1: /// <summary>
2: /// 绑定列表控件的数据源
3: /// </summary>
4: private void SetDataBindTestBillTypeToLookUpEdit()
5: {
6: if (this.lueTestBillType.Properties.DataSource == null)
7: {
8: string valueMember = "ID";
9: string displayMember = "检验工序";
10: DataTable dt = bll.comm.CommSelect.GetTestBillTypeItem();
11: commUiMethod.commUiMethod.setLookUpEditDataSource(this.lueTestBillType, dt, valueMember, displayMember, false);
12: }
13: if (this.lueTestBillType.EditorContainsFocus)
14: {
15: this.txtTestBillCaption.Text=this.lueTestBillType.GetColumnValue("报告名称").ToString();
16: }
17:
18: }
III:
1: /// <summary>
2: /// 清除窗体生成的SQL语句,回到初始状态
3: /// </summary>
4: protected override void SetLoadData()
5: {
6: this.lueTestBillType.EditValue =null;//这里不是""
7: this.txtTestBillCaption.Text = "";
8: this.txtTestBillNum.Text = "";
9: this.txtProductCode.Text = "";
10: this.txtProductDes.Text = "";
11: this.txtProductNum.Text = "";
12: this.lueProductCategory.EditValue = "";
13: this.lueProductColor.EditValue = "";
14: this.lueProductUnit.EditValue = "";
15: this.lueTestPerson.EditValue = "";
16: this.cboTestResult.EditValue = "";
17: this.radioGroup1.EditValue = 0;
18: }