• DevExpress的GridView,为每行动态绑定不同的RepositoryItemLookUpEdit


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

     1                 gridView2.CustomRowCellEditForEditing += (x, y) =>
     2                 {
     3                     if (y.Column.FieldName != "materiaGoodsid")
     4                         return;
     5                     DevExpress.XtraGrid.Views.Grid.GridView gv = sender as DevExpress.XtraGrid.Views.Grid.GridView;
     6                     DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit repositoryItem = new DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit();
     7                     y.RepositoryItem = repositoryItem;
     8                     string barcode = Convert.ToString(gridView2.GetFocusedDataRow()["cptm"]).Trim();
     9                     if (barcode == null)
    10                         return;
    11                     repositoryItem.DisplayMember = "cptm";
    12                     repositoryItem.ValueMember = "cptm";
    13                     repositoryItem.DataSource = new jiben.SubstituteAggregate().GetComplianceListByBarCode(barcode);
    14                     repositoryItem.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
    15                     //从列表中选择项后,绑定一个选值改变事件,以便于把列表中的其他列的值赋与gridView2中需要的列
    16                     repositoryItem.EditValueChanged += (m,n)=> {
    17                         DataRow dr = gridView2.GetFocusedDataRow();
    18                         var materiaObject = (m as DevExpress.XtraEditors.LookUpEdit).GetSelectedDataRow();
    19                         dr["materiaName"] = materiaObject.GetType().GetProperty("cpmc").GetValue(materiaObject);
    20                     };
  • 相关阅读:
    SpringMVC 高级开发(异常页面处理,json传输数据,文件上传)
    SpringMVC中的Controller方法的(返回值/参数类型)
    SpringMVC的其他注解
    SpringMVC的整合,基于注解
    SpringMVC入门程序:helloWorld
    SpringMVC入门
    SpringAOP事务的实现
    仅需三步,即可在Vue项目中配置sass
    前端常用的设计模式
    call和apply的区别及其用法
  • 原文地址:https://www.cnblogs.com/hrx521/p/11488283.html
Copyright © 2020-2023  润新知