GridControl主从表结构如何操作从表数据

今天同事咨询我GridControl主从表结构中的从表如何取到值,试了很久获取到的值一直是null,恰好博主前几年刚好有用过这个功能,故顺利解决了同事的问题,下面就贴上代码。

 

第一步,需要定义一个变量

/// <summary>
/// 由于明细表只有在运行时可见,所以我们要设定一个明细表以便获取明细表数据
/// </summary>
private GridView DetailView = new GridView();

第二步,最为关键的步骤

/// <summary>
/// 获取从表的当前选择行的某一列(如ID列)
/// 这个时候再使用获取主表当前选择行的某一列的方法是不行的,因为所得到的SeletedRowsCount=0。
/// 使用如下方法得到:
/// 在MASTER表的展开事件中得到detail有的View.然后就可以利用它了
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void gvLeft_MasterRowExpanded(object sender, CustomMasterRowEventArgs e)
{

 // 将明细的数据赋值DetailView中
  this.DetailView = this.gvLeft.GetDetailView(e.RowHandle, e.RelationIndex) as GridView;
  this.DetailView.HorzScrollStep = this.DetailView.RowCount;
}

第三步,操作方法与主表一致,比如: 

private void gvPluLeft_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)

  var model = this.DetailView.GetRow(e.FocusedRowHandle) as HQSKUPRICELEFT;
  if (model == null) { return; }

  /***********此处加需要的代码************/
}

posted @ 2020-08-12 16:22  惊梦无痕  阅读(274)  评论(0编辑  收藏  举报