You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现点击GridView2行时,让GridView1定位至对应姓氏行?

实现GridView点击联动定位功能(基于Surname字段)

根据你的需求,这里给你一套可行的实现方案,核心是借助两个GridView的共同关联字段SURNAME完成联动定位:

1. 给GridView2绑定行点击事件

首先,你需要给名为List的GridView2添加RowClick事件(或者FocusedRowChanged事件,根据你的交互习惯选择),这样用户点击任意行时就能触发定位逻辑。

2. 获取GridView2选中行的Surname值

在事件方法中,先获取当前点击行的SURNAME字段值——和你现有代码的思路类似,只是切换到GridView2:

// 获取GridView2点击行的Surname值
string targetSurname = Convert.ToString(gridView2.GetRowCellValue(e.RowHandle, "SURNAME"));

注意:这里用e.RowHandle直接获取点击的行句柄,比用FocusedRowHandle更准确,避免焦点延迟的问题。

3. 在GridView1中定位对应记录

接下来用DevExpress GridView内置的LocateByValue方法高效查找匹配的行,找到后设置焦点并确保该行可见:

if (!string.IsNullOrEmpty(targetSurname))
{
    // 在GridView1中查找Surname匹配的行
    int matchedRowHandle = gridView1.LocateByValue("SURNAME", targetSurname);
    
    // 如果找到有效行,执行定位操作
    if (matchedRowHandle != DevExpress.XtraGrid.GridControl.InvalidRowHandle)
    {
        gridView1.FocusedRowHandle = matchedRowHandle;
        gridView1.MakeRowVisible(matchedRowHandle, true); // 滚动到目标行,确保用户能看到
    }
}

完整事件代码示例

把逻辑整合起来,完整的事件方法如下:

private void gridView2_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
{
    // 跳过无效行(比如分组行、空行)
    if (e.RowHandle < 0) return;
    
    // 获取目标Surname
    string targetSurname = Convert.ToString(gridView2.GetRowCellValue(e.RowHandle, "SURNAME"));
    
    if (string.IsNullOrWhiteSpace(targetSurname)) return;
    
    // 查找并定位GridView1中的对应行
    int matchedRowHandle = gridView1.LocateByValue("SURNAME", targetSurname);
    
    if (matchedRowHandle != DevExpress.XtraGrid.GridControl.InvalidRowHandle)
    {
        gridView1.FocusedRowHandle = matchedRowHandle;
        gridView1.MakeRowVisible(matchedRowHandle, true);
    }
}

额外注意事项

  • 确保两个GridView的SURNAME字段数据类型一致,避免因类型不匹配导致查找失败
  • 如果GridView1开启了分组或过滤,LocateByValue会在当前显示的数据集内查找,符合预期
  • 若需要更流畅的交互,可以在定位前先取消GridView1的当前选中状态(可选)

内容的提问来源于stack exchange,提问作者Burak Turhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:09:33