【发布时间】:2010-09-10 15:26:54
【问题描述】:
我有一个 DataGrid,其中每一列都有一个 SortExpression。我希望排序表达式相当于“ORDER BY LEN(myField)”。
我试过了
SortExpression="LEN(myField)"
但这会引发异常,因为它不是有效的语法。有什么想法吗?
【问题讨论】:
我有一个 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"
【讨论】:
SortExpression 参数指定要排序的列名,后跟“ASC”或“DESC”来控制顺序。
您可以更改列的DataType 属性以指定用户定义的类型,其比较器函数比较字符串长度。这不会是一项微不足道的任务。
【讨论】:
使用 Linq,您可以编写如下查询:
query.OrderBy(column => column.MyField.Length);
【讨论】:
嗯。有时间测试一下。我能够让 SortExpression="Description.Length" 工作。这是 1.1、2.0 还是 3.5?
【讨论】: