问题描述: 我想 循环对  DataGird中 row 进行操作,在 哪行出现错误 就 直接定位到 哪行,这样作 没有问题 。可是 当 排序 后 问题 就 来了 排序后 的 行顺序  与 绑定的表的顺序 不一样 定位出现问题 。我该如何解决

解决方案 »

  1.   

    数据表中应该有主键吧?你把主键也绑定到DataGrid中,当然,你可以不显示它。这样就可以用主键来定位了。
    C#群:14407665,欢迎加入
      

  2.   

    我的意思 是 定位 到 那一行 也就是 用 那个 Position 属性来定位 。我要定位 的 那一行数据我是 知道的 只是 不知道 她在 排序后 的 行数 有一种 方法可以解决的就是 再循环一遍 查找 DataGird[i,j]找到 匹配行 得到 i值 然后 付给Position 。 这样做的愚蠢之处 在于 我分析 数据 时 循环一遍 报错时 就 又来一遍 恶心.
      

  3.   

    哦 对了 可以 开始 分析数据时 就用 DataGird[,]来 循环 分析 不用 那个 dataSource来分析了
    这样 循环 一遍 就可以了...我去 试试 后来 给分 。来者有分
      

  4.   

    设你DataGrid.DataSource = dataView;
    排序后,你看到的行数对应着 dataView中的行
      

  5.   

    private int posionRow(DataRow row)
    {
    bool bTemp=false;
    for (int i=0;i<((DataTable)dgData.DataSource).Rows.Count-1;++i)
    {
    for (int j=0;j<row.Table.Columns.Count;++j)
    {
    if(row[j]!=dgData[i,j])
    {
    bTemp=false;
    break;
    }
    bTemp=true;
    } if(bTemp)
    return i;
    }
    return -1;
    }
    取得 排序后 某一行 的行号比较 恶心的是 得循环 取得.