有时需要动态为RepositoryItemLookUpEdit绑定数据源,比如联动选择的场景或者我们仅仅是需要一个下拉选择框而
并不想要GridView的列与RepositoryItemLookUpEdit的数据源有强绑定关系。但是GridView的列在绑定事先定义RepositoryItemLookUpEdit后是针对所有行生效的。
基于以上原因,使得在中途如果再为RepositoryItemLookUpEdit.DataSource赋与新的数据源,则会导值已经选择的其他行的此列值被置为空,
或者出现无法弹出RepositoryItemLookUpEditView。
解决以上问题的方法是为每个GridView的行都创建一个RepositoryItemLookUpEdit并在创建后为它绑定新的数据源。如下:

                 gridView2.CustomRowCellEditForEditing += (x, y) =>
{
if (y.Column.FieldName != "materiaGoodsid")
return;
DevExpress.XtraGrid.Views.Grid.GridView gv = sender as DevExpress.XtraGrid.Views.Grid.GridView;
DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit repositoryItem = new DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit();
y.RepositoryItem = repositoryItem;
string barcode = Convert.ToString(gridView2.GetFocusedDataRow()["cptm"]).Trim();
if (barcode == null)
return;
repositoryItem.DisplayMember = "cptm";
repositoryItem.ValueMember = "cptm";
repositoryItem.DataSource = new jiben.SubstituteAggregate().GetComplianceListByBarCode(barcode);
repositoryItem.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
//从列表中选择项后,绑定一个选值改变事件,以便于把列表中的其他列的值赋与gridView2中需要的列
repositoryItem.EditValueChanged += (m,n)=> {
DataRow dr = gridView2.GetFocusedDataRow();
var materiaObject = (m as DevExpress.XtraEditors.LookUpEdit).GetSelectedDataRow();
dr["materiaName"] = materiaObject.GetType().GetProperty("cpmc").GetValue(materiaObject);
};

DevExpress的GridView,为每行的动态绑定不同的RepositoryItemLookUpEdit的更多相关文章

  1. DevExpress的GridView设置特定行的样式

    GridView控件绑定事件: gridView_SampleData.CustomDrawCell += gridView_SampleData_CustomDrawCell; 根据自定义逻辑来改变 ...

  2. Devexpress MVC GridView / CardView (持续更新)

    //获取gridview里面的combo box 显示的文本 //获取某个column在gridview的 index RightGridView.GetColumnByField("Fun ...

  3. .net dataGridView当鼠标经过时当前行背景色变色;然后【给GridView增加单击行事件,并获取单击行的数据填充到页面中的控件中】

    1.首先在前台dataGridview属性中增加onRowDataBound属性事件 2.然后在后台Observing_RowDataBound事件中增加代码 protected void Obser ...

  4. ASP.NET 使用AJAX让GridView的数据行显示提示框(ToolTip)

    介绍ASP.NET AJAX可以使你的web应用程序具有更丰富的功能和更多的用户响应. 本文中,我将演示如何通过ASP.NET AJAX的帮助,给像GridView这样的数据绑定控件的数据行增加pop ...

  5. DevExpress中GridView Excel下载

    DevExpress中GridView提供了许多Excel下载的方法,如gridView.ExportToExcelOld(sfdExcelDown.FileName); 在修改Bug时,遇到这样问题 ...

  6. DevExpress.GridControl.gridView的一些注意

    1.DevExpress控件组中的GridControl控件不能使横向滚动条有效.现象:控件中的好多列都挤在一起,列宽都变的很小,根本无法正常浏览控件单元格中的内容. 解决: gridView1.Op ...

  7. DevExpress gridcontrol gridView主从表折叠/展开显示

    在使用报表的时候,有很多需要主从表一起显示,从表不需要另外弹窗显示明细,反而直接显示在主表下方.如图所示: 第一次做这个功能,主从表显示,从表列隐藏,从表单元格点击事件这三个功能点花费了很多时间,在网 ...

  8. devExpress GridControl gridView笔记

    gridView1.Appearance.EvenRow.BackColor = Color.FromArgb(, , , ); gridView1.Appearance.OddRow.BackCol ...

  9. GridView中数据行的操作

    一个是直接动态绑定gridview 用3楼的办法就可以了 int j=1;//j的数值表示你要取的那一列的索引,要取第二列,j就设为1for (int i = 0; i < this.GridV ...

随机推荐

  1. Spring JdbcTemplate之使用详解

    最近在项目中使用到了 Spring 的 JdbcTemplate, 中间遇到了好多坑, 所以花一些时间对 JdbcTemplate 的使用做了一个总结, 方便以后自己的查看.文章中贴出来的API都是经 ...

  2. .net持续集成测试篇之Nunit that断言

    系列目录 that是Nunit的新语法,语义上不如简单断言,使用上也更加复杂,但是其功能更加强大. 其基本语法如下代码片段示: [Test] public void DemoTest() { bool ...

  3. c#异常后重试操作

    private void TryConnect(System.Action action)         {             int retries = 3;             whi ...

  4. 逆向破解之160个CrackMe —— 002-003

    CrackMe —— 002 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  5. Docker入门-docker compose的使用

    Compose简介 Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排.其代码目前在https://github.com/docker/compose 上开源. ...

  6. 大白话5分钟带你走进人工智能-第36节神经网络之tensorflow的前世今生和DAG原理图解(4)

    目录 1.Tensorflow框架简介 2.安装Tensorflow 3.核心概念 4.代码实例和详细解释 5.拓扑图之有向无环图DAG 6.其他深度学习框架详细描述 6.1 Caffe框架: 6.2 ...

  7. Raven 2 靶机渗透

    0X00 前言 Raven 2中一共有四个flag,Raven 2是一个中级boot2root VM.有四个标志要捕获.在多次破坏之后,Raven Security采取了额外措施来强化他们的网络服务器 ...

  8. [Flowable] - 工作流是什么?BPM是什么?

    工作流管理系统基本概念 近两年随着电子商务环境不断演进(例如阿里巴巴的B2B电子商务平台),从原来支持企业内部单系统的业务流程.到企业内部应用.服务的集成,再进一步向企业与合作伙伴之间业务交互,工作流 ...

  9. 一个最简单的通过自定义注解形式实现AOP的例子

    1.首先实现AOP实例的第一步即声明切面类,两种方式(1.基于注解形式@Aspect,2.基于xml配置,一般都通过注解来声明切面类) 2.切入点表达式大致也有两种,一种是直接根据方法的签名来匹配各种 ...

  10. Guava google缓存机制

    易百教程java学习http://www.yiibai.com/v3.php?app=all