Разница в порядке сортировки в SQL и TreeList - PullRequest
0 голосов
/ 07 февраля 2011

В моей программе VB.NET я использую Devexpress TreeList v9.2. Когда я запускаю программу, я заполняю TreeList из хранимой процедуры.

Когда я запускаю процедуру SQL в SQL Management Studio, мои данные возвращаются так, как я хочу. Например

  • 3
  • 6
  • 33
  • 42
  • 54
  • 206
  • 226
  • 733
  • 6633

Тем не менее, когда я запускаю программу и заполняю TreeList теми же результатами из хранимой процедуры, я получаю:

  • 206
  • 226
  • 3
  • 42
  • 6
  • 6633
  • 733

Вы знаете, что я могу делать неправильно?

EDIT:

У меня есть «заказ по» в моей хранимой процедуре. Вот почему я получаю правильный порядок, когда запускаю хранимую процедуру из SQL Management Studio. Порядок по разбивает число на подстроки (так как они могут также содержать буквы), поэтому он сортируется численно. Почему-то похоже, что TreeList использует его как Strings, а не сохраняет его в исходном порядке сортировки.

EDIT:

Я создал еще один столбец, содержащий числовые данные, чтобы при сортировке таблицы по этому столбцу в порядке возрастания мои данные выглядели так, как я хочу. Но даже если я отправил SortOrder в свойствах, он не будет сортироваться, даже если маленький треугольник появился в заголовке сетки при запуске.

РЕШИТЬ:

Я решил это по телефону:

  • tree.beginSort ()
  • установка sortindex для столбца, по которому я хочу отсортировать, равным 0, а для остальных столбцов - -1: tree.columns("colName").SortIndex
  • установка сортировщика моего столбца в порядке возрастания: tree.columns("colName").SortOrder = SortOrder.Ascending
  • tree.endsort ()

1 Ответ

1 голос
/ 07 февраля 2011

Столбец treeList привязан к строковому полю.В этом случае treeList считает, что этот столбец содержит строковые значения, и сортирует их как строки.Чтобы изменить это поведение, используйте подход Настраиваемая сортировка , предоставленный XtraTreeList.

...