我有一个DataGrid,其中每列都有一个SortExpression。我希望sort表达式相当于“ORDER BY LEN(myField)”。
我试过了
SortExpression="LEN(myField)"
但是这会引发异常,因为它不是有效的语法。有什么想法吗?
答案 0 :(得分:3)
如果已经通过查询返回len,但是没有显示该列,只将它用作原始列的sortexpression?
我认为默认情况下不支持您的想法。
答案 1 :(得分:3)
根据您的SQL风格,以下内容可行:
SELECT
ColumnA as FieldA
, ColumnB as FieldB
, LEN(ColumnA) as FieldL
FROM TableName
ORDER BY L
然后再做
SortExpression="FieldL"
答案 2 :(得分:0)
SortExpression
参数指定要排序的列的名称,后跟“ASC”或“DESC”来控制订单。
您可以更改列的DataType
属性以指定用户定义的类型,其比较器函数比较字符串长度。这不是一项微不足道的任务。
答案 3 :(得分:0)
使用Linq,您可以编写如下查询:
query.OrderBy(column => column.MyField.Length);
答案 4 :(得分:0)
嗯。有一段时间来测试。我能够 SortExpression =“Description.Length”才能工作。这是1.1,2.0还是3.5?