私の VB.NET プログラムでは、Devexpress TreeList v9.2 を使用しています。プログラムを実行すると、ストアド プロシージャから TreeList に値が入力されます。
SQL Management Studio で SQL プロシージャを実行すると、希望どおりのデータが返されます。例えば
- 3
- 6
- 33
- 42
- 54
- 206
- 226
- 733
- 6633
しかし、プログラムを実行して TreeList にストアド プロシージャと同じ結果を入力すると、次のようになります。
- 206
- 226
- 3
- 33
- 42
- 54
- 6
- 6633
- 733
私が間違っているかもしれないことを知っていますか??
編集:
ストアド プロシージャに「order by」があります。そのため、SQL Management Studio 内からストアド プロシージャを実行すると、正しい順序が得られます。order by は数値を部分文字列として分割するため (文字も含まれている可能性があるため)、数値順に並べ替えられているように見えます。どういうわけか、TreeList は元の並べ替え順序を維持するのではなく、文字列として再分類しているように見えます。
編集:
数値データを含む別の列を作成したので、この列でテーブルを昇順で並べ替えると、データが希望どおりに表示されます。しかし、プロパティで SortOrder を送信しても、実行時にグリッドのヘッダーに小さな三角形が表示されてもソートされません。
解決済み:
私はこれを呼び出して解決しました:
- tree.beginSort()
- 並べ替えたい列の sortindex を 0 に設定し、他の列を -1 に設定します。
tree.columns("colName").SortIndex
- 列のソート順を昇順に設定:
tree.columns("colName").SortOrder = SortOrder.Ascending
- tree.endsort()