0

私の 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()
4

1 に答える 1

1

treeList の列は文字列フィールドにバインドされています。この場合、treeList は、この列に文字列値が含まれていると見なし、それらを文字列として並べ替えます。この動作を変更するには、XtraTreeList によって提供されるカスタム ソートアプローチを使用します。

于 2011-02-07T19:35:29.087 に答える