0

我有一个 DataGrid,其中每一列都有一个 SortExpression。我希望排序表达式相当于“ORDER BY LEN(myField)”。

我试过了

SortExpression="LEN(myField)" 

但这会引发异常,因为它不是有效的语法。有任何想法吗?

4

5 回答 5

3

已经通过查询返回 len ,但不显示该列,仅将其用作原始列的 sortexpression 怎么样?

我认为默认情况下不支持您的想法。

于 2008-09-18T11:36:07.757 回答
3

根据您的 SQL 风格,以下可能有效:

SELECT
 ColumnA as FieldA
 , ColumnB as FieldB
 , LEN(ColumnA) as FieldL
FROM TableName
ORDER BY L

然后做

SortExpression="FieldL"
于 2008-09-18T11:41:59.507 回答
0

参数指定要排序的SortExpression列名,后跟“ASC”或“DESC”控制顺序。

您可以更改DataType列的属性以指定用户定义的类型,其比较器函数比较字符串长度。这不会是一项微不足道的任务。

于 2008-09-18T11:44:23.977 回答
0

使用 Linq,您可以编写如下查询:

query.OrderBy(column => column.MyField.Length);
于 2008-09-18T16:17:55.410 回答
0

嗯。有时间测试一下。我能够让SortExpression="Description.Length"工作。这是 1.1、2.0 还是 3.5?

于 2008-09-18T16:21:39.007 回答