DevexpressGridControl中RepositoryItemLookUpEdit级联显示控制.docxVIP

  • 260
  • 0
  • 约3.64千字
  • 约 3页
  • 2017-06-07 发布于重庆
  • 举报

DevexpressGridControl中RepositoryItemLookUpEdit级联显示控制.docx

DevexpressGridControl中RepositoryItemLookUpEdit级联显示控制

在使用GridControl时,可能会有需求要求某2列显示RepositoryItemLookUpEdit控件,而且在选择第一列的值时,第2列绑定的数据源发生变化。当然这在其他地方很容易实现,但是在GridControl的列中就不能用以往的思维方式进行了,因为在GridControl中,你只有选中这一列,它才会显示出该列所绑定控件的特性,否则只是一个普通的lable。 基本思路:在点击第2列时才去获取第一列选中的值,然后根据该值查询出第2列的数据进行绑定。 方法/步骤 1 RepositoryItemLookUpEdit控件的创建,我是在CustomRowCellEditForEditing这个事件下处理的。(因为我所需要显示RepositoryItemLookUpEdit的列是动态创建的,所以需要这样创建,如果你是固定显示,直接绑定RepositoryItemLookUpEdit点击事件就可以了。)在这个事件里面,还可以控制某一列不同行显示不同控件。(因为Devexpress是只能设置某一列控件的属性的,不能精准到控制每个单元格中的控件) //DEPOT 堆场列 级联 PORT港口列 private void Frm _Load(object sender, EventArgs e) { gridView.CustomRowCellEditForEditing += gridView_CustomRowCellEditForEditing; } void gridView_CustomRowCellEditForEditing(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e) { DevExpress.XtraGrid.Views.Grid.GridView view = sender as DevExpress.XtraGrid.Views.Grid.GridView; DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit lue = new DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit(); switch (e.Column.FieldName) { case DEPOT: //获取该行port string portFilter = view.GetRowCellValue(e.RowHandle, PORT).ToString(); if (portFilter != null portFilter != ) { this.depotBindingSource.Filter = string.Format(Port={0}, portFilter); } else { //自定义一个查不到结果的 过滤条件 lue.DataSource = this.depotBindingSource.Filter = string.Format(Port=123456, portFilter); } #region RepositoryItemLookUpEdit 格式化 lue.DataSource = depotBindingSource; lue.DisplayMember = CODE; lue.ValueMember = CODE; lue.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; lue.Columns.AddRange(new

文档评论(0)

1亿VIP精品文档

相关文档