2009-11-14 84 views
0

我最近在GridView控件上發現了BoundColumns的方便的小NullDisplayText屬性。這對於處理記錄集中的NULL值非常有用 - 例如,當我的用戶名字段爲NULL時,我可以顯示佔位符「System」。ASP.Net Gridview - 如何讓SortExpression使用NullDisplayText值

但是,對於SortExpression,我只能指定列的名稱,據我所知。所以當我按該列進行排序時,它仍然使用NULL作爲排序值而不是我的自定義值排序,導致這些項目首先出現在列表中。所以我的結果是這樣的,當我排序:

System 
System 
Adams 
Simpson 

任何想法,我怎麼可以自定義的SortExpression行爲使用個性化的NullDisplayText值,而不是默認的NULL?這是我只需要在我的SQL中處理?

謝謝!

回答

1

我認爲它打破了各種各樣的規則,因爲它把SQL在表示層,但我必須承認,我已經在排序表達式中使用一個case語句之前:

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

你可以嘗試

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

但也許你應該真的在從數據訪問層調用的SQL中執行,就像你在你的問題中提出的那樣。

0

您可以檢查GridView行邊界事件中的行的值,並將其設置爲「System」。將排序表達式設置爲列名稱。

不是專家,但這是有點解決方法。不知道如何自定義排序表達式。