0

我有一个具有以下值的数据表(_dataTableAvailable):

Name        Id   Selected
- Global    2100  False
ASpecial    1200  False
BSpecial    2300  False
GSpecial    400   False

在我使用以下代码后:

DataView dataViewAvailable = new DataView(_dataTableAvailable, "selected=False", "name", DataViewRowState.CurrentRows);

排序顺序变了!!

Name        Id   Selected
ASpecial    1200  False
BSpecial    2300  False
- Global    2100  False
GSpecial    400   False

我想要的是我得到相同的订单。我怎样才能做到这一点?

我使用 Visual Studio 2005 (C# 2.0)。

4

2 回答 2

1

看起来您的数据表是按 Id 排序的,因此您可以按 Id 对数据视图进行排序并获得相同的结果!对于代码示例,请查看以下链接: DataView.Sort - 不仅仅是 asc/desc(需要自定义排序)

于 2012-06-11T08:46:57.907 回答
0

我找到了。这是一个错误,唯一的解决方案是添加一个额外的列并将其称为“NameSort”。在这里放下面的顺序。所以你得到:

Name        Id   Selected NameSort
- Global    2100  False   0
ASpecial    1200  False   1
BSpecial    2300  False   2
GSpecial    400   False   3

将代码更改为,它工作正常:

DataView dataViewAvailable = new DataView(_dataTableAvailable, "selected=False", "NameSort", DataViewRowState.CurrentRows);
于 2012-06-11T10:24:03.327 回答