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,即使运行时小三角形出现在网格的标题中,它也不会排序。

解决了:

我通过调用解决了这个问题:

  • 树.beginSort()
  • 将 sortindex 设置为我要排序的列为 0,将其他列设置为 -1:tree.columns("colName").SortIndex
  • 将我的列的排序顺序设置为升序:tree.columns("colName").SortOrder = SortOrder.Ascending
  • 树.endsort()
4

1 回答 1

1

treeList 的列绑定到一个字符串字段。在这种情况下,treeList 认为该列包含字符串值并将它们作为字符串进行排序。要更改此行为,请使用XtraTreeList 提供的自定义排序方法。

于 2011-02-07T19:35:29.087 回答