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

我努力了

SortExpression="LEN(myField)" 

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

有帮助吗?

解决方案

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

我认为你的想法不会被默认支持。

其他提示

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

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

然后做

SortExpression="FieldL"

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

query.OrderBy(column => column.MyField.Length);

嗯。有时间测试一下。我能够得到 SortExpression="描述.长度" 上班。这是 1.1、2.0 还是 3.5?

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top