如何按字段长度对 ASP.NET DataGrid 进行排序?
题
我有一个 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
列的属性来指定用户定义的类型,其比较器函数比较字符串长度。这将不是一项微不足道的任务。
不隶属于 StackOverflow