![](/img/trans.png)
[英]How to change Gridview's row color based on a specific cell value? Asp.net
[英]Set ASP DataGrid row color based on cell value
我有一個ASP:DataGrid
。對此我在顯示記錄的記錄是從SQL Server 2008 R2的數據庫中抽取到的SqlAdapter
這是用來填充DataSet
,並且結合到ASP:DataGrid
ASP:DataGrid
可以跨越多個頁面,並且每頁限制為20條記錄。
列之一是一個值,表示剩余多少天要處理該條目。 我想突出顯示紅色值為0-1且oracle為2-5的值。 我嘗試過的方法是將函數調用設置為ASP:DataGrid
的OnItemDataBound
字段
Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
If (e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem) Then
Select Case CType(e.Item.Cells(5).Text, Integer)
Case 0 To 1
e.Item.BackColor = Drawing.Color.Red
Case 2 To 5
e.Item.BackColor = Drawing.Color.Orange
End Select
End If
End Sub
首次加載頁面時,此方法非常有效。 如果記錄多於一頁,而您嘗試移至下一頁,則根本不會加載任何記錄,實際上ASP:DataGrid
根本不會顯示。 如果我刪除OnItemDataBound
則ASP:DataGrid
可以再次正常運行(盡管沒有突出顯示)。
因此事實證明,可能的代碼實際上是正確的。 我在Catch
部分中的代碼部分放置了一個Try
代碼塊,以將詳細信息記錄在數據庫的表中。
立刻顯示出來自Select Case
的以下內容
Conversion from string " " to type 'Integer' is not valid.
我需要做的一個簡單更改就是確保僅當存在有效值時才對單元格進行着色。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.