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

我最近在GridView控件上发现了BoundColumns的方便的小NullDisplayText属性。这非常适合处理记录集中的NULL值 - 例如,当我的用户名字段为NULL时,我可以显示占位符“System”。 但是,对于SortExpression,我只能指定列的名称,据我所知。因此,当我按该列排序时,它仍然使用NULL作为排序的值而不是我的自定义值进行排序,导致这些项目首先显示在列表中。所以当我排序时,我的结果看起来像这样:

System
System
Adams
Simpson
知道如何自定义SortExpression行为以使用我的自定义NullDisplayText值而不是默认的NULL吗?这是我只需要在我的SQL中处理的东西吗? 谢谢!
已邀请:

iut

赞同来自:

您可以在GridView行绑定事件中检查行的值,并将其设置为“System”。将Sorting表达式设置为列名称。 不是专家,但这是一种解决方法。不知道如何自定义Sort Expression。

hid

赞同来自:

我认为它打破了各种规则,因为它将sql放在表示层中,但我必须承认我在排序表达式中使用了case语句之前:

SortExpression="CASE WHEN ContactLoginID IS NULL THEN 0 ELSE 1 END"
你可以试试
SortExpression="ISNULL(Name, 'System')"
但是,您可能应该在问题中建议的数据访问层调用的SQL中实际执行此操作。

要回复问题请先登录注册