【问题标题】:ASP.Net Gridview - How to get SortExpression to use NullDisplayText valueASP.Net Gridview - 如何让 SortExpression 使用 NullDisplayText 值
【发布时间】:2009-11-14 18:56:28
【问题描述】:

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

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

System
System
Adams
Simpson

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

谢谢!

【问题讨论】:

    标签: asp.net gridview


    【解决方案1】:

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

    SortExpression="CASE WHEN ContactLoginID IS NULL THEN 0 ELSE 1 END"
    

    你可以试试

    SortExpression="ISNULL(Name, 'System')"
    

    但也许您真的应该按照您在问题中的建议在从数据访问层调用的 SQL 中执行此操作。

    【讨论】:

      【解决方案2】:

      您可以在 GridView 行绑定事件中检查行的值并将其设置为“系统”。将排序表达式设置为列名。

      不是专家,但这是一种解决方法。不知道如何自定义排序表达式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-07
        • 2010-09-17
        • 1970-01-01
        • 2012-02-18
        相关资源
        最近更新 更多