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 に答える