我最近在GridView控件上发现了BoundColumns的方便的小NullDisplayText属性。这非常适合处理记录集中的NULL值 - 例如,当我的用户名字段为NULL时,我可以显示占位符“System”。
但是,对于SortExpression,我只能指定列的名称,据我所知。因此,当我按该列排序时,它仍然使用NULL作为排序的值而不是我的自定义值进行排序,导致这些项目首先显示在列表中。所以当我排序时,我的结果看起来像这样:
System
System
Adams
Simpson
任何想法如何自定义SortExpression行为以使用我的自定义NullDisplayText值而不是默认的NULL?这是我在SQL中需要处理的事情吗?
谢谢!
答案 0 :(得分:1)
我认为它打破了各种规则,因为它将sql放在表示层中,但我必须承认我之前在sort表达式中使用了case语句:
SortExpression="CASE WHEN ContactLoginID IS NULL THEN 0 ELSE 1 END"
你可以尝试
SortExpression="ISNULL(Name, 'System')"
但也许您应该按照您在问题中的建议从数据访问层调用的SQL中执行此操作。
答案 1 :(得分:0)
您可以检查GridView行绑定事件中的行的值,并将其设置为“System”。将Sorting表达式设置为列名。
不是专家,但这是一种解决方法。不知道如何自定义Sort Expression。