Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取ultragrid的所有行,甚至是已删除的行_C#_Datatable_Infragistics_Ultrawingrid - Fatal编程技术网

C# 如何获取ultragrid的所有行,甚至是已删除的行

C# 如何获取ultragrid的所有行,甚至是已删除的行,c#,datatable,infragistics,ultrawingrid,C#,Datatable,Infragistics,Ultrawingrid,我想获得ultragrid的所有行,甚至是删除的行。我使用以下代码仅选择了此网格的一列,但它导致了一个错误: “无法通过行访问已删除的行信息。” ((数据表)grid1.DataSource).AsEnumerable() .Select(行=>row.Field(“filedName”)) .ToList(); 我使用了.AcceptChanges()来解决此错误,但现在结果不包含已删除的行 DataTable deletedRowsTable = datatable.GetChanges(

我想获得ultragrid的所有行,甚至是删除的行。我使用以下代码仅选择了此网格的一列,但它导致了一个错误:

“无法通过行访问已删除的行信息。”

((数据表)grid1.DataSource).AsEnumerable()
.Select(行=>row.Field(“filedName”))
.ToList();
我使用了
.AcceptChanges()
来解决此错误,但现在结果不包含已删除的行

DataTable deletedRowsTable = datatable.GetChanges(DataRowState.Deleted);
for(int x = 0; x < deletedRowsTable.Rows.Count; x++)
{
    .....
    // no more if needed here, because the rows are all deleted
    .....
}

有人能帮我获取此超级网格的所有行(包括已删除的行)吗?

对数据行应用Delete方法后,无法直接访问该数据行。 如果调用,则此数据行将从集合中删除,就像它从未存在过一样。(因此,如果尚未更新数据库,则永远不会从数据库中删除该行)

要扭转方法的效果,唯一可能的方法是使用RejectChanges方法,但在这之后,该行不再被删除

我不能在LinQ中给你举个例子,但是,一般来说,你需要这样做

for(int x = 0; x < datatable.Rows.Count; x++)
{
   DataRow r = dataTable.Rows[x];
   if(r.RowState == DataRowState.Deleted)
   {
       r.RejectChanges();
       .... //do you stuff
       r.Delete(); // redelete the row,
   }
}
for(int x=0;x
此外,如果您只对已删除的行感兴趣,可以通过这种方式更改上面的代码,以便从原始表中提取已删除行的子集

DataTable deletedRowsTable = datatable.GetChanges(DataRowState.Deleted);
for(int x = 0; x < deletedRowsTable.Rows.Count; x++)
{
    .....
    // no more if needed here, because the rows are all deleted
    .....
}
DataTable deletedRowsTable=DataTable.GetChanges(DataRowState.Deleted);
对于(int x=0;x