如何按字段长度对ASP.NET DataGrid进行排序?
时间:2020-03-06 14:20:52 来源:igfitidea点击:
我有一个DataGrid,其中每个列都有一个SortExpression。我希望排序表达式等效于" ORDER BY LEN(myField)"。
我试过了
SortExpression="LEN(myField)"
但这会引发异常,因为它不是有效的语法。有任何想法吗?
解决方案
那么已经可以通过查询返回len了,但是不显示该列,仅将其用作原始列的sortexpression怎么办?
我认为默认情况下不支持想法。
根据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?