若 GridView 中的資料列需判斷欄位值,針對符合條件的資料列做標記的動作;例如需要將「庫存小於30」的產品的資料列設定為紅色粗體字,以做警告提示使用。
以 Northwind 資料庫的 Products 資料表為例,若需要將 UnitsInStock 小於 30 的資料列標記為紅色粗體字,則在 GridView 的 RowDataBound 事件中撰寫如下程式碼。
在 RowDataBound 事件中處理有個好處,因為只有這時抓得到繫結的資料,可以直接利用欄位值去做判斷,不需使用 FindControl 的方式來判斷;一般我會建議非必要儘量少用 FindControl,因為 FindControl 常會因設計畫面的變更(例如 GridView 加入一個新的欄位),而導致程式碼錯誤。
執行結果如下
ASP.NET 魔法學院
2008/3/17 00:39| 閱讀數 : 5621 | 1 人收藏 我要推薦 | One Comment | 文章分類: ASP.NET 基礎 GridView 常見問題 | 訂閱
Odin 2008/11/9 下午 05:32 回覆
# re: Gridview 依條件判斷標記資料列
大大,這功能很強ㄟ,我想另外問一下,如你的範例中,可以在最左邊多一欄叫"警示",如果UnitsInStock <30,"警示"的地方會亮紅燈,若UnitsOnOrder<30時,"警示"的地方會亮橘燈,簡單來說就是警告的顏色不是反映在整列,而是所有條件的判斷結果會在"警示"欄位中顯示出來,因為目前有需要到這個功能,不知道厲害的大大之不知道要怎樣解決^^
☆ 有些事現在不做,就一輩子都不會做了 ☆