ASP.Net Gridview - 如何使SortExpression使用NullDisplayText值

时间:2009-11-14 18:56:28

标签: asp.net gridview

我最近在GridView控件上发现了BoundColumns的方便的小NullDisplayText属性。这非常适合处理记录集中的NULL值 - 例如,当我的用户名字段为NULL时,我可以显示占位符“System”。

但是,对于SortExpression,我只能指定列的名称,据我所知。因此,当我按该列排序时,它仍然使用NULL作为排序的值而不是我的自定义值进行排序,导致这些项目首先显示在列表中。所以当我排序时,我的结果看起来像这样:

System
System
Adams
Simpson

任何想法如何自定义SortExpression行为以使用我的自定义NullDisplayText值而不是默认的NULL?这是我在SQL中需要处理的事情吗?

谢谢!

2 个答案:

答案 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。